__asm__("\n\
movl $1, %eax\n\
");
如何逐步浏览__asm__
以便我可以打印寄存器以查看它们存储的内容?现在,我暂停了__asm__
行,然后我尝试按stepi
或si
并且它没有进入movl
行。我做错了什么?
答案 0 :(得分:1)
si
是踩过movl
指令(您可以通过输入display/i $pc
并观察输出如何变化来验证这一点。
未发生的事情(以及可能让您困惑的事情)是对源的更新。那是因为你在 asm ()内的代码没有任何行号注释,所以GDB无法分辨它应该显示哪一行。
通常,编译器会将此类注释放入程序集中。但是你在这里绕过了编译器。如果你想要行号是正确的,你必须自己添加这些注释(通常不值得麻烦)。