11.在用gdb跟踪调试时,在进入printf内时,输出结果是错误的,不知怎么回事?
12.内存地址0x804909c中的0x是表示16进制吗?还有最后的c也是地址里面的吧,不是代表什么意义的符号吧?(再用gdb调试查看内存地址时看到的)
13.为什么我在 break *_start的地方设置断点,run时不停呢,而在第一句前加nop设置成break * _start+1就停了呢?好像是不加nop在哪设断点都不停,难道只能加nop然后在nop处先停,然后再单步调试吗?
14.在gdb中如何查看堆栈内容,用bt和info stack,不知是查看什么堆栈,用info stack查看的内容:
#0 _start( ) at calltest.s:11
不知这是什么意思,我想看的是堆栈中的内容,就是压进去的值,不知怎么查看?
------解决方案--------------------------------------------------------
11. 不知道啊。
12. 0x表示是16进制,804909c是数据。
13. 这个_start是标号、函数名吧,不生成代码的,你要断点在实际的代码行。
14. 查看当前函数的调用栈信息。
显示的信息是当前执行在_start( )内部,从calltest.s第11行进入_start( )的。
x $sp