我想在我的示踪剂打印返回值,有两个问题如何获取函数内的函数返回地址?
- 如何获得返回地址?
- 返回位置在〜Tracer()之前或之前更新?
在这里需要这样的文本格式#2的代码:
struct Tracer
{
int* _retval;
~Tracer()
{ printf("return value is %d", *_retval); }
};
int foo()
{
Tracer __tracter = { __Question_1_how_to_get_return_address_here__ };
if(cond) {
return 0;
} else {
return 99;
}
//Question-2:
// return postion is updated before OR after ~Tracer() called ???
}
我认为 “返回地址” 是指可执行文件代码位置将返回控制,*不*从当前函数返回的值。 –
这是我的老问题,我尝试过VC,但是失败了...... – Raymond