理解C++程序GDB语法

4
执行命令x/64ga $rsp后,其中一行输出为:
<Hex-addr-val> <Hex-addr-val> <Hex-addr-val> <Class_Name::Foo(Data_Type const&)+662>

所以我对那行代码的所有内容都理解了,除了最后的'+662'部分。这个数字与函数有什么关系?它在崩溃时是一个正值吗?还是其他什么意思?


从函数开始的偏移量?纯粹是猜测。 - Jesper Juhl
1个回答

1

这个数字与该函数有什么关系?

这意味着在位置$rsp+24,GDB找到了一个值,它看起来像是一个地址,指向Class_Name::Foo()代码内部662字节处。

这可能只是巧合,或者可能是因为Foo()调用了其他函数而将该地址推入堆栈。

使用x/i '&Class_Name::Foo(Data_Type const&)+662-5可以显示该地址处的CALL指令,这将强烈表明这不仅仅是一个随机巧合。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接