aaa*_*aaa 5 c# c++ interop exception stack-trace
我有一些托管代码调用一些本机DLL内的方法(我有适当的符号文件).
有时,该本机方法会抛出我在托管代码中捕获的异常.但是,当我从我捕获的异常中打印堆栈跟踪时,我只看到托管代码(最后一帧是对本机代码的调用..但它没有看到本机代码中的堆栈跟踪).
我怎样才能获得原生的callstack?
*当我调试代码时,我可以进入本机代码,并查看实际调用堆栈.
获取本机堆栈跟踪非常困难。当它通过 .NET/本机翻译层时,本机堆栈跟踪已经丢失。
所以,你需要在本地代码中捕获它,这也是相当困难的。看看 John Robbins 为正确的本机堆栈跟踪所做的工作;我能找到的他的 SUPERASSERT 的最新公开版本来自MSJ,1999 年 2 月。