调试本地进程时WinDbg慢(步骤) [英] WinDbg slow when debugging local process (step over)
问题描述
它用于调试本地服务(WinDbg本地运行,在同一台机器上调试服务)。
PDB文件存储在本地硬盘上。
源代码通过SMB共享访问。
调试工作在突发,有时它流动很好,大部分时间我看到令人难以置信的烦人的* BUSY *的消息,几乎每当我执行过渡时,都会发生这种情况。
任何想法,我可以做些什么来加快速度? b
$ b
谢谢
我有完全相同的问题,通过调整符号选项大大改善。具体来说,SYMOPT_NO_PUBLICS选项似乎是最重要的,但我调整了一些其他相关选项。我做了以下...
.symopt-0x4
.symopt + 0x100
.symopt + 0x8000
.symopt-0x10000
...这是:
-SYMOPT_DEFERRED_LOADS
+ SYMOPT_NO_UNQUALIFIED_LOADS
+ SYMOPT_NO_PUBLICS
-SYMOPT_AUTO_PUBLICS
之后,我有一个symopt位掩码值0x80028333,我现在用作WinDbg命令行选项,如:
windbg.exe -sflags 0x80028333
我还没有发现这种方法有什么缺点。也许有些情况下使用SYMOPT_NO_PUBLICS导致缺少的信息,但是对我来说这是一个很好的工作,这绝对是更快的。
This is really driving me crazy. I am using WinDbg as my primary debugger. It is used to debug local service (WinDbg running locally, debugging service on the same machine). The PDB files are stored on local hard drive. Source code is accessed via SMB share.
Debugging works in bursts, sometimes it flow well, most of the time I keep seeing the unbelievably annoying "*BUSY*" message, this happens almost every time when I perform a "step-over".
Any ideas what I could do to speed things up?
Thanks
I was having the exact same problem, and was able to see a big improvement by adjusting the symbol options. Specifically, the SYMOPT_NO_PUBLICS option seemed to be the most important, but I adjusted a few other related options. I did the following...
.symopt-0x4 .symopt+0x100 .symopt+0x8000 .symopt-0x10000
...which is:
-SYMOPT_DEFERRED_LOADS +SYMOPT_NO_UNQUALIFIED_LOADS +SYMOPT_NO_PUBLICS -SYMOPT_AUTO_PUBLICS
After all that, I had a symopt bit mask value of 0x80028333, which I now use as a WinDbg command line option, as in:
windbg.exe -sflags 0x80028333
I haven't yet discovered if there is any downside to this approach. Perhaps there are some cases where using SYMOPT_NO_PUBLICS results in missing information, but it's been working well for me thus far, and it's definitely way faster.
WinDbg Symbol Options MS Documentation
这篇关于调试本地进程时WinDbg慢(步骤)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!