微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

与崩溃转储相比,WinDbg在附加到进程时显示不同的调用堆栈

我正在分析与托pipe代码一起使用本机库时发生的死锁。 我正在使用WinDbg来debugging问题,以便保存转储,以便供应商可以在其处所观察问题。

当附加到有问题的过程时,我会在任何调用堆栈之前看到以下消息:

警告:堆栈展开信息不可用。 以下框架可能是错误的。

直接连接到stream程时,框架实际上看起来是正确的。 但是,当我转储此文件,然后在另一台机器上的WinDbg中打开转储时,其中一个堆栈帧是不同的(上面的错误也会显示出来)。原本这个供应商难倒了,因为代码path似乎不可行。

replace当前Windows用户与另一个用户运行EXE

检测附加的分析器

防止事件C#冒泡

ShowDialog返回types:窗体与窗口

如何获得图像中的多数颜色?

我拿着转储使用:

.dump /ma filename.dmp

什么会导致这种差异,有什么我可以做的,可靠地分析转储文件调用堆栈? 可能还有我应该注意的任何其他歪曲的数据?

“永远在上面”的对面

Windows文件系统统计更新频率

如何将HTML和文本都复制到剪贴板?

DirectXinput是游戏中键盘处理的正确select吗?

Windows应用程序图标文件

这听起来像你可能有不匹配的pdbs。 你尝试过!chksym和!itoldyouso命令吗? 例如见Bugslayer文章

一个要尝试的是!sym noisy ,应该告诉你哪些pdb文件正在被加载。

另请参阅MSDN博客

该警告告诉您,调试器无法将堆栈中的一个或多个地址与现有的模块信息相关联。 由于托管代码是由CLR实时编译的,因此没有相应的代码模块,因此也没有警告。

SOS命令!clrstack从CLR中获得必要的信息来显示一个有意义的堆栈(或者至少没有警告)。 如果您使用任何本机堆栈转储命令,您将看到托管代码的此警告。

即将出版的“高级.NET调试”一书还有其他细节。 请参阅http://advanceddotnetdebugging.com/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐