使用gdb如何单步c程序对应的汇编指令?

zxerwer 2016-09-21 06:50:28
例如,简单的加法运算

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

我用gcc -g myadd.c生成一个a.out然后
gdb a.out

b 2设置断点到int j=1+1;
我可以用disassemble命令看到反汇编语句。但是我想单步进入反汇编语句,应该怎么办呢? 我发现直接n的话,跳到c程序的下一行,而不会进入反汇编。

还请指点!
...全文
509 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fefe82 2016-09-22
  • 打赏
  • 举报
回复
应该是 i 吧 ..
赵4老师 2016-09-22
  • 打赏
  • 举报
回复
layout:用于分割窗口,可以一边查看代码,一边测试: layout src:显示源代码窗口 layout asm:显示反汇编窗口 layout regs:显示源代码/反汇编和CPU寄存器窗口 layout split:显示源代码和反汇编窗口
赵4老师 2016-09-22
  • 打赏
  • 举报
回复
layout regs:显示源代码/反汇编和CPU寄存器窗口
赵4老师 2016-09-22
  • 打赏
  • 举报
回复
10. 查看寄存器 要查看寄存器的值,很简单,可以使用如下命令: info registers 查看寄存器的情况(除了浮点寄存器)。 info all-registers 查看所有寄存器的情况(包括浮点寄存器)。 info registers <regname ...> 查看所指定的寄存器的情况。 寄存器中放置了程序运行时的数据,比如程序当前运行的指令地址(ip),程序的当前堆栈地址(sp)等。同样可以使用print命令来访问寄存器的情况,只需要在寄存器名字前加一个$符号就可以了,如p。
zxerwer 2016-09-22
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
layout:用于分割窗口,可以一边查看代码,一边测试: layout src:显示源代码窗口 layout asm:显示反汇编窗口 layout regs:显示源代码/反汇编和CPU寄存器窗口 layout split:显示源代码和反汇编窗口
能否同时显示源代码和寄存器窗口? 好像用layout调整的时候,要么显示源码,要么显示寄存器,只有反汇编的窗口不被覆盖。 还请指点!

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧