【发布时间】:2011-06-29 14:02:53
【问题描述】:
我需要打印出存储在堆栈中的函数返回地址吗? 我应该遵循的打印格式是
void function()
{
int *RetPtr = 0;
printf("Return address 0x%08x\n",
(unsigned int *)(&RetPtr+Return_addr_Offset));
/*Code goes here*/
}
有人可以帮忙吗!我不应该使用内置功能。 我该怎么做?
【问题讨论】:
-
这不是特定于架构、处理器类型和/或编译器吗?
-
您是想弄清楚如何在没有 printf 的情况下打印,或者如何计算 Return_addr_Offset?
-
我想弄清楚如何计算 Return_addr_Offset?我要求使用 printf 功能.......我在 Linux ubuntu 2.6.32-21-generic #32-Ubuntu SMP UTC 2010 i686 GNU/Linux 上运行它
-
我在 Linux ubuntu 2.6.32-21-generic #32-Ubuntu SMP UTC 2010 i686 GNU/Linux 上运行它
-
@Merlyn:是的,还有编译器的优化设置。