【发布时间】:2012-01-01 11:15:12
【问题描述】:
有谁知道 WinDbg 可以看到的 DLL 数量是否有上限?我相信 Visual Studio 曾经的上限为 500,但除了工作中的一些二手帐户之外,我找不到此声明的来源。
我正在尝试调试一个复杂的场景,但 WinDbg 的堆栈跟踪不完整。根据 Process Explorer,我感兴趣的模块已加载,但未显示在 WinDbg 中的“lm”输出中。
可疑的是,所说的输出正好是 500 个模块长,尽管我知道加载的模块不止于此,这让我相信 WinDbg 没有看到超过前 500 个的 DLL。任何人都可以确认吗?或者提出其他一些为什么加载的模块可能不会出现在“lm”中的原因?
编辑:经过进一步调查,我能够让 WinDbg 加载查看我需要的模块,方法是在加载该模块之前提前附加调试器。 p>
在我看来,在附加到进程后,调试器引擎只会看到前 500 个 dll,但会正确处理后续加载。不过,我仍然希望获得 WinDbg 专家的确认,或者更好的是,在附加时绕过处理 500 多个模块!
【问题讨论】:
-
我也有这个。通常似乎是 MS 调试 API 的限制。 Visual Studio 也有同样的限制。