有没有办法从C程序中的函数名称/地址访问堆栈帧指针?
我试图从GDB中的函数地址开始分析内存地址的内容,但无法获得任何有意义的信息。
有人可以给我一些暗示吗?
感谢。
答案 0 :(得分:3)
有没有办法从C程序中的函数名称/地址访问堆栈帧指针?
您的问题毫无意义:C程序中函数的名称和地址在链接时是固定的,并且(通常)不会更改。另一方面,堆栈指针是运行时属性,并且每次调用函数时都可能会更改。
既然你提到GDB,是的,当你在函数中停止时你可以找到堆栈指针,例如info frame
GDB命令。
答案 1 :(得分:1)
在函数顶部声明一个变量并获取它的地址?
void foo()
{
int dbg;void* sfp = &dbg;
}