首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >怎么在GDB中显示当前的汇编指令?

怎么在GDB中显示当前的汇编指令?
EN

Stack Overflow用户
提问于 2018-03-24 05:39:29
回答 2查看 0关注 0票数 0

我正在GDB中进行一些汇编级别的调试。有没有办法让GDB以显示当前源代码行的相同方式显示当前汇编指令?每个命令之后的默认输出如下所示:

代码语言:javascript
复制
0x0001433f      990         Foo::bar(p);

这给了我当前指令的地址,但我必须继续返回输出disassemble以查看我当前正在执行的指令。

EN

回答 2

Stack Overflow用户

发布于 2018-03-24 14:18:35

可以切换到GDB中的组装布局:

代码语言:javascript
复制
(gdb) layout asm

当前汇编指令将在汇编器窗口中显示。

代码语言:javascript
复制
   ┌───────────────────────────────────────────────────────────────────────────┐
   │0x7ffff740d756 <__libc_start_main+214>  mov    0x39670b(%rip),%rax        #│
   │0x7ffff740d75d <__libc_start_main+221>  mov    0x8(%rsp),%rsi              │
   │0x7ffff740d762 <__libc_start_main+226>  mov    0x14(%rsp),%edi             │
   │0x7ffff740d766 <__libc_start_main+230>  mov    (%rax),%rdx                 │
   │0x7ffff740d769 <__libc_start_main+233>  callq  *0x18(%rsp)                 │
  >│0x7ffff740d76d <__libc_start_main+237>  mov    %eax,%edi                   │
   │0x7ffff740d76f <__libc_start_main+239>  callq  0x7ffff7427970 <exit>       │
   │0x7ffff740d774 <__libc_start_main+244>  xor    %edx,%edx                   │
   │0x7ffff740d776 <__libc_start_main+246>  jmpq   0x7ffff740d6b9 <__libc_start│
   │0x7ffff740d77b <__libc_start_main+251>  mov    0x39ca2e(%rip),%rax        #│
   │0x7ffff740d782 <__libc_start_main+258>  ror    $0x11,%rax                  │
   │0x7ffff740d786 <__libc_start_main+262>  xor    %fs:0x30,%rax               │
   │0x7ffff740d78f <__libc_start_main+271>  callq  *%rax                       │
   └───────────────────────────────────────────────────────────────────────────┘
multi-thre process 3718 In: __libc_start_main     Line: ??   PC: 0x7ffff740d76d
#3  0x00007ffff7466eb5 in _IO_do_write () from /lib/x86_64-linux-gnu/libc.so.6
#4  0x00007ffff74671ff in _IO_file_overflow ()
   from /lib/x86_64-linux-gnu/libc.so.6
#5  0x0000000000408756 in ?? ()
#6  0x0000000000403980 in ?? ()
#7  0x00007ffff740d76d in __libc_start_main ()
   from /lib/x86_64-linux-gnu/libc.so.6
(gdb)
票数 0
EN

Stack Overflow用户

发布于 2018-03-24 14:55:53

可以做

代码语言:javascript
复制
display/i $pc

每次GDB停止时,它都会显示下一条指令的反汇编。

GDB-7.0也支持set disassemble-next-line on,这将拆卸整个下一行,并给你更多的反汇编上下文。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档