我试图弄清楚如何在MSVC中获取调用方的返回地址。我可以使用_ReturnAddress()来获取函数的返回地址,但似乎找不到找到调用方的方法。
我曾尝试使用CaptureStackBackTrace,但由于某些原因,它在多次调用后崩溃。我也希望通过内联汇编解决方案。
void my_function(){
cout << "return address of caller_function: " << [GET CALLER'S RETURN VALUE];
} // imaginary return address: 0x15AF7C0
void caller_function(){
my_function();
}// imaginary return address: 0x15AFA70
Run Code Online (Sandbox Code Playgroud)
输出:
return address of caller_function: 0x15AFA70
到目前为止,我还没有运气。谢谢你的帮助