【发布时间】:2021-02-16 09:58:30
【问题描述】:
十年前有一个类似的question,但没有好的答案 - 希望从那时起情况有所改变。
我有一个基于 .NET 4.72 的相当多线程的 Winforms 应用程序。我正在使用 Process Explorer Threads 视图查看它,它有很多 clr.dll!LogHelp_TerminateOnAssert+0x6835 类型的调用。我已经设置了符号路径,但它并没有真正为我清除任何东西。
我对应用程序进行了转储,并通过 DebugDiag 和 WinDbg 运行它,但没有发现任何突出的可疑之处。
所以我的问题:
- 我应该关心大量的 LogHelp_TerminateOnAssert 调用吗?
- 应用程序是否存在内存泄漏?
- 当我在 Visual Studio 中运行应用程序时,是否有过多的异常无法过滤?
我的代码中唯一的条目是!get_FrameReceived,该线程的堆栈如下:
循环次数最多的线程的栈是这样的:
【问题讨论】:
-
我想主要问题仍然是由于符号 - 与您引用的另一个问题相同。只需查看符号名称后的偏移量,它们仍然是“大”的。损坏/错误/丢失的符号似乎仍然是问题(只需将 clr.dll 符号(看起来很糟糕)与 ntdll.dll 符号(看起来“不错”)进行比较)。
-
“但没有好的答案” - 嘿,我的回答得到了 9 票 ;-) 没什么好说的了。这个问题缺乏细节。调用堆栈上可能有任何东西。您提供了该信息,因此请为此 +1
标签: c# .net clr windbg debugdiag