WinDbg可以看到的模块数量有上限吗? [英] Is there a cap on the number of modules WinDbg can see?

查看:132
本文介绍了WinDbg可以看到的模块数量有上限吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有人知道WinDbg可以看到的DLL数量是否有上限?我相信Visual Studio曾经被限制在500,但是我找不到这个索赔的来源,在一些二手帐户的工作之外。



我正在尝试调试一个毛茸茸的场景和WinDbg的堆栈跟踪是不完整的。根据Process Explorer,我感兴趣的模块是加载的,但它不会显示在WinDbg的'lm'输出中。



可疑的是,正是500个模块长,即使我知道有更多的加载,导致我相信WinDbg没有看到超过前500的DLL。有谁可以确认?还是建议一个加载的模块可能不会出现在lm中的其他原因?






编辑 :在进一步调查之后,在加载模块之前,我能够通过加载调试器来获取WinDbg加载所需的模块。



在我看来,在附加一个进程时,调试器引擎只会看到前500个dll,但会正确处理后续的加载。我仍然会喜欢WinDbg专家的确认,或者更好的是,在附加时可以绕过加工500多个模块!

解决方案

有一个注册表项来控制调试器可以看到的调试器消息数。
当您将值增加到例如2048你可以看到所有加载的dll。



这是相关的密钥:



HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control\Session Manager



DWORD DebuggerMaxModuleMsgs = eg 2048


Does anyone know if there is a cap on the number of DLLs WinDbg can see ? I believe Visual Studio was once capped at 500 but I can't find a source for this claim outside of some second hand accounts at work.

I'm trying to debug a hairy scenario and WinDbg's stack trace is incomplete. According to Process Explorer, the module I'm interested in is loaded but it doesn't show up in the output of 'lm' in WinDbg.

Suspiciously, said output is exactly 500 modules long, even though I know there are many more than that loaded, leading me to believe WinDbg isn't seeing DLLs beyond the first 500. Can anyone confirm ? Or suggest some other reason why a loaded module might not show up in 'lm' ?


Edit: upon further investigation, I was able to get WinDbg to load see the module I needed by attaching the debugger earlier, before that module was loaded.

It seems to me that, upon attaching to a process, the debugger engine will only see the first 500 dlls but will process subsequent loads correctly. I would still love confirmation from a WinDbg expert though, or better yet, a bypass to process more than 500 modules when attaching !

解决方案

There is a registry key controlling the number of debugger messages a debugger can see. When you increase the value to e.g. 2048 you can see all loaded dlls.

Here is the relevant key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager

DWORD DebuggerMaxModuleMsgs = e.g. 2048

这篇关于WinDbg可以看到的模块数量有上限吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆