display
명령으로 이런 종류의 작업을 수행 할 수 있습니다.
display/i $pc
프롬프트 때마다 인쇄되기 직전에 현재 명령 분해됩니다
(gdb) b main
Breakpoint 1 at 0x80483b5: file hw.c, line 5.
(gdb) display/i $pc
(gdb) r
Starting program: /tmp/hw
Breakpoint 1, main() at hw.c:5
5 puts("Hello world");
1: x/i $pc
0x80483b5 <main+17>: movl $0x8048490,(%esp)
지금 명령 단계를 (그럼 그냥 반복 입력 타격 유지) : 여전히
(gdb) si
0x080483bc 5 puts("Hello world");
1: x/i $pc
0x80483bc <main+24>: call 0x80482d4 <[email protected]>
(gdb)
0x080482d4 in [email protected]()
1: x/i $pc
0x80482d4 <[email protected]>: jmp *0x804959c
Current language: auto; currently asm
(gdb)
0x080482da in [email protected]()
1: x/i $pc
0x80482da <[email protected]+6>: push $0x10
(gdb)
0x080482df in [email protected]()
1: x/i $pc
0x80482df <[email protected]+11>: jmp 0x80482a4 <_init+48>
그것을 이 지점에 도달하면 작동합니다.
(gdb)
0x080482a4 in ??()
1: x/i $pc
0x80482a4 <_init+48>: pushl 0x804958c
(gdb)
0x080482aa in ??()
1: x/i $pc
0x80482aa <_init+54>: jmp *0x8049590
(gdb)
0xb7f052d0 in _dl_runtime_resolve() from /lib/ld-linux.so.2
1: x/i $pc
0xb7f052d0 <_dl_runtime_resolve>: push %eax
두 개 이상의 display
표현식을 동시에 활성화 할 수 있습니다 (제거하려면 undisplay <number>
사용). 여기
(gdb) display/x $eax
2: /x $eax = 0xbf90ab34
(gdb) si
0xb7f052d1 in _dl_runtime_resolve() from /lib/ld-linux.so.2
2: /x $eax = 0xbf90ab34
1: x/i $pc
0xb7f052d1 <_dl_runtime_resolve+1>: push %ecx
(gdb)
0xb7f052d2 in _dl_runtime_resolve() from /lib/ld-linux.so.2
2: /x $eax = 0xbf90ab34
1: x/i $pc
0xb7f052d2 <_dl_runtime_resolve+2>: push %edx
(gdb)
0xb7f052d3 in _dl_runtime_resolve() from /lib/ld-linux.so.2
2: /x $eax = 0xbf90ab34
1: x/i $pc
0xb7f052d3 <_dl_runtime_resolve+3>: mov 0x10(%esp),%edx
(gdb)
0xb7f052d7 in _dl_runtime_resolve() from /lib/ld-linux.so.2
2: /x $eax = 0xbf90ab34
1: x/i $pc
0xb7f052d7 <_dl_runtime_resolve+7>: mov 0xc(%esp),%eax
... 그리고 %eax
의 변화를 볼 수있다 : 예를 들어, %eax
어떻게되는지 볼 수있는 대안보다는
(gdb)
0xb7f052db in _dl_runtime_resolve() from /lib/ld-linux.so.2
2: /x $eax = 0xb7f0d668
1: x/i $pc
0xb7f052db <_dl_runtime_resolve+11>: call 0xb7eff780 <_dl_fixup>
(gdb)
더 나은하지만 TUI에서 작동하지 않습니다 . 나는 실제 해결책이 없을 수도 있다는 것을 깨닫고 잠시 후에 이것을 받아 들일만한 대답으로 표시 할 것입니다. – jbcreix