Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
有没有办法从 C 程序中的函数名称/地址访问堆栈帧指针?
我试图从 GDB 中的函数地址开始分析内存地址的内容,但无法获得任何有意义的信息。
有人可以给我一些提示吗?
谢谢。
您的问题毫无意义:C 程序中函数的名称和地址在链接时是固定的,并且(通常)不会改变。另一方面,堆栈指针是运行时属性,每次调用函数时都可能发生变化。
既然你提到了 GDB,是的,当你在函数内部停止时,你可以找到堆栈指针,例如info frameGDB 命令。
info frame
在函数顶部声明一个变量并获取它的地址?
void foo() { int dbg;void* sfp = &dbg; }