【问题标题】:Windbg Thread ID After StackOverflow And Process Shut DownStackOverflow 和进程关闭后的 Windbg 线程 ID
【发布时间】:2010-11-05 15:32:16
【问题描述】:

使用 ADPlus(在故障转储模式下)生成 .dmp 文件。未处理异常的最终序列(产生完整的内存转储文件)是...

第一次机会 DLL 卸载:包含线程 ID,但不包含 StackOverflowException(我不希望它出现,因为此时尚未引发异常)。

第一次机会 Stackoverflow:包含线程 ID,但不包含 StackOverflowException。

第一次机会进程关闭(shutdown):包含 StackOverflowException 但不包含线程 ID。

???

有什么方法可以通过配置 ADPlus 或通过在 Windbg 中运行命令来捕获异常并访问线程 ID?

回复 Magnus,如果线程 ID 不可用,是否有一些有用的信息?运行 !threads 返回一些信息,但没有线程 ID 和异常,似乎没有其他地方可以从那里去。在这种情况下,运行 !clrstack 似乎比运行 !threads 更有用。

【问题讨论】:

    标签: debugging windbg adplus


    【解决方案1】:

    打开第二个转储并输入命令.ecxr[enter]
    现在dds esp[输入]
    要继续查看调用堆栈,只需编写 dds[enter]
    [输入]....[输入]....

    您可能会发现该线程正在调用已卸载的 DLL。

    【讨论】:

      【解决方案2】:

      在对转储文件进行事后调试期间,您是否尝试过 WinDbg 中的 !thread 命令?

      【讨论】:

        【解决方案3】:

        以下帖子提供了有关捕获 StackOverflowException 的更多信息,但从未完全解决

        Help catching StackOverflowException with WinDbg and ADPlus

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-05-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-11-27
          • 2014-05-25
          相关资源
          最近更新 更多