gdb保留历史:
show history
set history expansion
set history save
sethistory size 256
保存在 ~/.gdb_history
干掉的进程会重建
__epoll_wait_nocancel ()
怎么建立的?不要忽略!!
ctrl+f
(gdb)
show history
set history expansion
set history save
sethistory size 256
保存在 ~/.gdb_history
干掉的进程会重建
__epoll_wait_nocancel ()
怎么建立的?不要忽略!!
ctrl+f
(gdb)
- [root@red54apple gdbtest]# gdb
- GNU gdb Fedora (6.8-37.el5)
- Copyright (C) 2008 Free Software Foundation, Inc.
- License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
- This is free software: you are free to change and redistribute it.
- There is NO WARRANTY, to the extent permitted by law. Type "show copying"
- and "show warranty" for details.
- This GDB was configured as "x86_64-redhat-linux-gnu".
- (gdb) attach 4992
- Attaching to process 4992
- Reading symbols from /opt/backup/mynginx/workdir/nginx-1.0.5/objs/nginx...done.
- Reading symbols from /lib64/libpthread.so.0...done.
- [Thread debugging using libthread_db enabled]
- [New Thread 0x2b8b4d052520 (LWP 4992)]
- Loaded symbols for /lib64/libpthread.so.0
- Reading symbols from /lib64/libcrypt.so.1...done.
- Loaded symbols for /lib64/libcrypt.so.1
- Reading symbols from /lib64/libm.so.6...done.
- Loaded symbols for /lib64/libm.so.6
- Reading symbols from /lib64/libcrypto.so.6...done.
- Loaded symbols for /lib64/libcrypto.so.6
- Reading symbols from /usr/lib64/libz.so.1...done.
- Loaded symbols for /usr/lib64/libz.so.1
- Reading symbols from /lib64/libc.so.6...done.
- Loaded symbols for /lib64/libc.so.6
- Reading symbols from /lib64/ld-linux-x86-64.so.2...done.
- Loaded symbols for /lib64/ld-linux-x86-64.so.2
- Reading symbols from /lib64/libdl.so.2...done.
- Loaded symbols for /lib64/libdl.so.2
- Reading symbols from /lib64/libnss_files.so.2...done.
- Loaded symbols for /lib64/libnss_files.so.2
- 0x0000003b6e23079a in sigsuspend () from /lib64/libc.so.6
- (gdb) info proc
- process 4992
- cmdline = 'nginx: master process /usr/local/nginx/objs/nginx'
- cwd = '/root/gdbtest'
- exe = '/opt/backup/mynginx/workdir/nginx-1.0.5/objs/nginx'
- (gdb) q
- The program is running. Quit anyway (and detach it)? (y or n) y
- Detaching from program: /opt/backup/mynginx/workdir/nginx-1.0.5/objs/nginx, process 4992
- [root@red54apple gdbtest]# pidof /usr/local/nginx/objs/nginx
- 5000 4999 4998 4997 4996 4995 4994 4993 4992
- [root@red54apple gdbtest]#
- [root@red54apple gdbtest]#
- [root@red54apple gdbtest]# gdb
- GNU gdb Fedora (6.8-37.el5)
- Copyright (C) 2008 Free Software Foundation, Inc.
- License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
- This is free software: you are free to change and redistribute it.
- There is NO WARRANTY, to the extent permitted by law. Type "show copying"
- and "show warranty" for details.
- This GDB was configured as "x86_64-redhat-linux-gnu".
- (gdb) attach 4999
- Attaching to process 4999
- Reading symbols from /opt/backup/mynginx/workdir/nginx-1.0.5/objs/nginx...done.
- Reading symbols from /lib64/libpthread.so.0...done.
- [Thread debugging using libthread_db enabled]
- [New Thread 0x2b8b4d052520 (LWP 4999)]
- Loaded symbols for /lib64/libpthread.so.0
- Reading symbols from /lib64/libcrypt.so.1...done.
- Loaded symbols for /lib64/libcrypt.so.1
- Reading symbols from /lib64/libm.so.6...done.
- Loaded symbols for /lib64/libm.so.6
- Reading symbols from /lib64/libcrypto.so.6...done.
- Loaded symbols for /lib64/libcrypto.so.6
- Reading symbols from /usr/lib64/libz.so.1...done.
- Loaded symbols for /usr/lib64/libz.so.1
- Reading symbols from /lib64/libc.so.6...done.
- Loaded symbols for /lib64/libc.so.6
- Reading symbols from /lib64/ld-linux-x86-64.so.2...done.
- Loaded symbols for /lib64/ld-linux-x86-64.so.2
- Reading symbols from /lib64/libdl.so.2...done.
- Loaded symbols for /lib64/libdl.so.2
- Reading symbols from /lib64/libnss_files.so.2...done.
- Loaded symbols for /lib64/libnss_files.so.2
- 0x0000003b6e2d3fd3 in __epoll_wait_nocancel () from /lib64/libc.so.6
- (gdb) info proc
- process 4999
- cmdline = 'nginx: worker process'
- cwd = '/root/gdbtest'
- exe = '/opt/backup/mynginx/workdir/nginx-1.0.5/objs/nginx'
- (gdb) info args
- No symbol table info available.
- (gdb) b proc
- Function "proc" not defined.
- Make breakpoint pending on future shared library load? (y or [n]) n
- (gdb) x proc
- No symbol "proc" in current context.
- (gdb) info *proc
- Undefined info command: "*proc". Try "help info".
- (gdb) info program
- Using the running image of attached Thread 0x2b8b4d052520 (LWP 4999).
- Program stopped at 0x6e2d3fd3.
- (gdb) x 0x2b8b4d052520
- 0x2b8b4d052520: 0x4d052520
- (gdb) x/c 0x2b8b4d052520
- 0x2b8b4d052520: 32 ' '
- (gdb) x/i 0x2b8b4d052520
- 0x2b8b4d052520: and %ah,0x2b8b4d05(%rip) # 0x2b8b7890722b
- (gdb) p port.6281
- No symbol "port" in current context.
- (gdb) shell ps -ef|grep nginx
- root 4992 1 0 Sep22 ? 00:00:00 nginx: master process /usr/local/nginx/objs/nginx
- nobody 4993 4992 0 Sep22 ? 00:00:00 nginx: worker process
- nobody 4994 4992 0 Sep22 ? 00:00:00 nginx: worker process
- nobody 4995 4992 0 Sep22 ? 00:00:00 nginx: worker process
- nobody 4996 4992 0 Sep22 ? 00:00:00 nginx: worker process
- nobody 4997 4992 0 Sep22 ? 00:00:00 nginx: worker process
- nobody 4998 4992 0 Sep22 ? 00:00:00 nginx: worker process
- nobody 4999 4992 0 Sep22 ? 00:00:00 nginx: worker process
- nobody 5000 4992 0 Sep22 ? 00:00:00 nginx: worker process
- root 5121 5082 0 00:15 pts/1 00:00:00 bash -c ps -ef|grep nginx
- root 5123 5121 0 00:15 pts/1 00:00:00 grep nginx
- (gdb) attach 4992
- A program is being debugged already. Kill it? (y or n) y
- Attaching to program: /opt/backup/mynginx/workdir/nginx-1.0.5/objs/nginx, process 4992
- [Thread debugging using libthread_db enabled]
- [New Thread 0x2b8b4d052520 (LWP 4992)]
- Loaded symbols for /lib64/libpthread.so.0
- Loaded symbols for /lib64/libcrypt.so.1
- Loaded symbols for /lib64/libm.so.6
- Loaded symbols for /lib64/libcrypto.so.6
- Loaded symbols for /usr/lib64/libz.so.1
- Loaded symbols for /lib64/libc.so.6
- Loaded symbols for /lib64/ld-linux-x86-64.so.2
- Loaded symbols for /lib64/libdl.so.2
- Loaded symbols for /lib64/libnss_files.so.2
- ngx_vslprintf (buf=0x6d881c "",
- last=0xffffffffffffffff <Address 0xffffffffffffffff out of bounds>, fmt=0x4ae2fb "%4d/%02d/%02d %02d:%02d:%02d", args=0x7fff1a77bb30)
- at src/core/ngx_string.c:157
- 157 while (*fmt && buf < last) {
- (gdb) shell ps -ef|grep nginx
- [root@red54apple ~]# gdb
- GNU gdb Fedora (6.8-37.el5)
- Copyright (C) 2008 Free Software Foundation, Inc.
- License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
- This is free software: you are free to change and redistribute it.
- There is NO WARRANTY, to the extent permitted by law. Type "show copying"
- and "show warranty" for details.
- This GDB was configured as "x86_64-redhat-linux-gnu".
- (gdb) shell pidof /usr/local/nginx/objs/nginx
- 5283 5279 5222 5000 4996 4995 4994 4993 4992
- (gdb) x/i $pc
- No registers.
- (gdb) show reg
- Undefined show command: "reg". Try "help show".
- (gdb) attach 5283
- Attaching to process 5283
- Reading symbols from /opt/backup/mynginx/workdir/nginx-1.0.5/objs/nginx...done.
- Reading symbols from /lib64/libpthread.so.0...done.
- [Thread debugging using libthread_db enabled]
- [New Thread 0x2b8b4d052520 (LWP 5283)]
- Loaded symbols for /lib64/libpthread.so.0
- Reading symbols from /lib64/libcrypt.so.1...done.
- Loaded symbols for /lib64/libcrypt.so.1
- Reading symbols from /lib64/libm.so.6...done.
- Loaded symbols for /lib64/libm.so.6
- Reading symbols from /lib64/libcrypto.so.6...done.
- Loaded symbols for /lib64/libcrypto.so.6
- Reading symbols from /usr/lib64/libz.so.1...done.
- Loaded symbols for /usr/lib64/libz.so.1
- Reading symbols from /lib64/libc.so.6...done.
- Loaded symbols for /lib64/libc.so.6
- Reading symbols from /lib64/ld-linux-x86-64.so.2...done.
- Loaded symbols for /lib64/ld-linux-x86-64.so.2
- Reading symbols from /lib64/libdl.so.2...done.
- Loaded symbols for /lib64/libdl.so.2
- Reading symbols from /lib64/libnss_files.so.2...done.
- Loaded symbols for /lib64/libnss_files.so.2
- 0x0000003b6e2d3fd3 in __epoll_wait_nocancel () from /lib64/libc.so.6
- (gdb) show reg
- Undefined show command: "reg". Try "help show".
- (gdb) info reg
- rax 0xfffffffffffffffc -4
- rbx 0x3b6e01bbc0 255248677824
- rcx 0xffffffffffffffff -1
- rdx 0x200 512
- rsi 0x13cf1370 332338032
- rdi 0x16 22
- rbp 0x7fff1a77bfb0 0x7fff1a77bfb0
- rsp 0x7fff1a77bf28 0x7fff1a77bf28
- r8 0x17566ce 24471246
- r9 0x4e7b688a 1316710538
- r10 0x5 5
- r11 0x246 582
- r12 0x0 0
- r13 0x7fff1a77c550 140733637444944
- r14 0x0 0
- r15 0x0 0
- rip 0x3b6e2d3fd3 0x3b6e2d3fd3 <__epoll_wait_nocancel+10>
- eflags 0x246 [ PF ZF IF ]
- cs 0x33 51
- ss 0x2b 43
- ds 0x0 0
- es 0x0 0
- fs 0x0 0
- gs 0x0 0
- fctrl 0x37f 895
- fstat 0x0 0
- ftag 0xffff 65535
- fiseg 0x0 0
- fioff 0x0 0
- foseg 0x0 0
- fooff 0x0 0
- fop 0x0 0
- mxcsr 0x1f80 [ IM DM ZM OM UM PM ]
- (gdb) x/i $pc
- 0x3b6e2d3fd3 <__epoll_wait_nocancel+10>: cmp $0xfffffffffffff001,%rax
- (gdb)
- (gdb) x/10i $pc
- 0x3b6e2d3fd3 <__epoll_wait_nocancel+10>: cmp $0xfffffffffffff001,%rax
- 0x3b6e2d3fd9 <__epoll_wait_nocancel+16>: jae 0x3b6e2d4038 <epoll_wait+120>
- 0x3b6e2d3fdb <__epoll_wait_nocancel+18>: retq
- 0x3b6e2d3fdc <epoll_wait+28>: sub $0x28,%rsp
- 0x3b6e2d3fe0 <epoll_wait+32>: mov %rdi,0x8(%rsp)
- 0x3b6e2d3fe5 <epoll_wait+37>: mov %rsi,0x10(%rsp)
- 0x3b6e2d3fea <epoll_wait+42>: mov %rdx,0x18(%rsp)
- 0x3b6e2d3fef <epoll_wait+47>: mov %rcx,0x20(%rsp)
- 0x3b6e2d3ff4 <epoll_wait+52>: callq 0x3b6e2dfa80 <__libc_enable_asynccancel>
- 0x3b6e2d3ff9 <epoll_wait+57>: mov 0x8(%rsp),%rdi
- (gdb)