【问题标题】:Call stack doesn't give a clue调用堆栈没有给出线索
【发布时间】:2014-06-16 08:41:00
【问题描述】:

我们有一个 32 位“C” - Win32 应用程序,偶尔会挂起

在挂起时,(非响应状态)客户向我们发送了转储 当我在 Windbg 中打开转储时,调用堆栈给出以下内容

wow64win!NtUserMessageCall+0xa
wow64win!whNT32NtUserMessageCallCB+0x32
wow64win!Wow64DoMessageThunk+0x8b
wow64win!whNtUserMessageCall+0x12e
wow64!Wow64SystemServiceEx+0xd7
wow64cpu!TurboDispatchJumpAddressEnd+0x2d
wow64!RunCpuSimulation+0xa
wow64!Wow64LdrpInitialize+0x42a
ntdll!LdrpInitializeProcess+0x17e3
ntdll! ?? ::FNODOBFM::`string'+0x28ff0
ntdll!LdrInitializeThunk+0xe

我没有得到任何线索,因为调用堆栈没有指向我们的代码。

PS :- 挂起情况不仅在 64 位系统中很常见。

【问题讨论】:

  • 看来该线程已发送消息。可能拥有收件人窗口的进程没有响应。
  • 唯一的其他线索是我们的应用程序正在与 MS word 建立 DDE 连接,并且任务管理器屏幕截图显示为无响应
  • 缺乏活动告诉你的是这里没有足够的信息来帮助你。你会想做一些调试。收集信息。

标签: c stack call win64


【解决方案1】:

你需要在 windbg 中切换到 32 位,!wow64exts.sw,这会打印出 wow64 目标的真实堆栈跟踪。

【讨论】:

  • 非常感谢。这成功了 :) 我现在能够获得确切的堆栈跟踪。
猜你喜欢
  • 2021-05-26
  • 1970-01-01
  • 2019-07-15
  • 2011-10-09
  • 2014-12-10
  • 1970-01-01
  • 1970-01-01
  • 2013-09-09
  • 1970-01-01
相关资源
最近更新 更多