我正在分析将本机库与托管代码一起使用时发生的死锁。我正在使用 WinDbg 来调试问题,目的是保存转储,以便供应商可以在他们的场所观察到问题。
附加到有问题的进程时,我在任何调用堆栈之前看到以下消息:
警告:堆栈展开信息不可用。以下框架可能是错误的。
当直接连接到进程时,框架实际上看起来是正确的。但是,当我对该文件进行转储,然后在另一台机器上的 WinDbg 中打开转储时,其中一个堆栈帧是不同的(也显示了上述错误。)这最初让供应商难住了,因为代码路径似乎不可能.
我使用以下方式进行转储:
.dump /ma filename.dmp
什么会导致这种差异,我能做些什么来可靠地分析转储文件的调用堆栈?可能还有其他我应该注意的歪曲数据吗?