我们可以从函数名访问堆栈帧指针

时间:2013-07-14 03:57:22

标签: c gdb stackframe

有没有办法从C程序中的函数名称/地址访问堆栈帧指针?

我试图从GDB中的函数地址开始分析内存地址的内容,但无法获得任何有意义的信息。

有人可以给我一些暗示吗?

感谢。

2 个答案:

答案 0 :(得分:3)

  

有没有办法从C程序中的函数名称/地址访问堆栈帧指针?

您的问题毫无意义:C程序中函数的名称和地址在链接时是固定的,并且(通常)不会更改。另一方面,堆栈指针是运行时属性,并且每次调用函数时都可能会更改。

既然你提到GDB,是的,当你在函数中停止时你可以找到堆栈指针,例如info frame GDB命令。

答案 1 :(得分:1)

在函数顶部声明一个变量并获取它的地址?

void foo()
{
int dbg;void* sfp = &dbg;

}