【问题标题】:How to use gdb to debug into a C program's corresponding disassembly?如何使用gdb调试成C程序对应的反汇编?
【发布时间】:2016-09-21 10:54:38
【问题描述】:

使用VC可以调出反汇编窗口并穿越它。但是使用 gdb 似乎不是那么直接:

例如我有一个 myadd.c

void main(){
   int i=0;
   int j=i+1;
   j+=2;
}

gcc -g myadd.c

gdb a.out

b 2 //在int j=1+1处设置断点;

现在我可以使用“反汇编”命令查看反汇编代码。我的要求是像 VC 一样调试“进入”这个反汇编代码。我试过's'命令,它直接进入下一个“C”语句,而不是反汇编语句。

怎么做?

【问题讨论】:

    标签: c debugging gdb disassembly


    【解决方案1】:

    要跳转到下一条汇编指令,请改用stepi(简称si)。

    查看this了解更多信息,尤其是如何使用display/i显示下一条机器指令。

    【讨论】:

      【解决方案2】:

      要获得相当不错的装配视图,请使用la p (layout prev) 和si (stepi)。使用C-x a 返回/从常规 gdb 提示符返回。在某些情况下,其他布局也可能有用。

      【讨论】:

        猜你喜欢
        • 2010-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-10
        • 2010-09-08
        相关资源
        最近更新 更多