在VStudio中对断点进行分组管理
由于在工程的调试中,积累了了很多的断点。而每次调试之中,只有一部分的断点是和当前调试相关的,希望能把其他的无关断点disable掉。
而如果每次都要断点窗口去一一勾选,效率并不高。所以产生了将断点进行分组管理的想法,这样可以一次性的enable/disable一组或多组断点。
本文通过编写宏来对断点进行分组标记(Tag), 分组Disable和分组Enable的操作。
假设:
断点是以过程划分的,比如在以下toy project中,代码可分为Initailize->DoSomething->Cleanup三部分,
相应的代码中的6个断点也分为三组: 我们将其分成group1, group2, group3。
下面编写三个宏,
第一个给同组的断点打上标记 TagEnabledBreadpoints, 能将当前所有处于Enable状态的断点打上识别标记tag
第二个将一组断点enable, EnableTaggedBreakPoints, 能将有某个tag的一组断点enable
第三个将一组断点disable, DisableTaggedBreakPoints, 能将有某个tag的一组断点disable
打开Macro IDE (Tools -> Macro -> Macro IDE), 在MyMacro下的Module1中加入以下三个宏(代码在本文最后)。如下图
现在就可以将上述的6个断点分成三组了。
将代码中Initialize部分的2个断点enable,其余的4个断点disable,然后在命令窗口中运行TagEnabledBreakpoints宏,将它们编入group1:
>Macros.MyMacros.Module1.TagEnabledBreakPoints group1
然后把这两个断点disable, 将DoSomething中的两个断点Enable, 将它们编入group2://注意,是disable, 不是remove,如果将一个断点remove掉那么其标记tag也随即丢失
>Macros.MyMacros.Module1.TagEnabledBreakPoints group2
用同样的方法把Cleanup中的2个断点编入group3.
现在这3组断点已经可以通过运行EnableTaggedBreakpoints和DisableTaggedBreakpoints来操作了。
如将group1断点Enable,
>Macros.MyMacros.Module1.EnableTaggedBreakPoints group1
将group1断点disable, 在将group2, group3 enable
>Macros.MyMacros.Module1.DisableTaggedBreakPoints group1
>Macros.MyMacros.Module1.EnableTaggedBreakPoints group2
>Macros.MyMacros.Module1.EnableTaggedBreakPoints group3
Reference:
http://blogs.msdn.com/jimgries/archive/2004/01/28/64153.aspx
Macros snippets:
Code