Exclude certain projects from stepping through dur

2019-02-17 12:40发布

I am working on a couple of projects (A and B) in a large VS2010 solution (all in C#). There are many cases where methods from project A call through to one or more of the projects in the solution for which I am not responsible, which in turn call through to project B. When stepping through with the debugger from project A, I am forced to step through a host of methods in these other projects, in which I have no interest, before I finally reach the call to project B. Further, when stepping out of project B, I have to step all the way back through the call stack of uninteresting methods before I am back to project A.

I am currently working around this by setting breakpoints at the entry and exit points in projects A and B, but I find that a lot of my time is spent setting these breakpoints in the correct places, and I feel that my life would be a lot easier if I could just disable step-through for certain projects.

I am aware of the DebuggerStepThroughAttribute, but its use is not workable in my situation as (i) I would have to add it in many places and (ii) the guys in my office who ARE interested in stepping through this code would not be happy.

Any ideas?

1条回答
狗以群分
2楼-- · 2019-02-17 13:02

Yes, this is possible by enabling Just My Code and preventing symbol loading for the DLLs you don't care about.

To enable Just My Code:

  • Debug » Options and Settings... » General » check "Enable Just My Code (Managed only)".

To prevent symbols from loading for a DLL:

  • Debug » Options and Settings... » Symbols » click "All modules, unless excluded"
  • Click "Specify excluded modules"
  • Add the names of the modules you want to exclude. Their symbols will not be loaded when you debug your application.

Now, when you do an F11 step-into from project A into project B that goes through project C, as long as you don't have the symbols for C loaded, the step-into will go directly into B.

To ensure that the symbols for C aren't loaded:

  • Start debugging
  • Get to a point where C is loaded
  • Open the Modules window (Ctrl+Alt+U), scroll to the entry for C
  • The "Symbol Status" column should say "Loading disabled by Include/Exclude setting."
查看更多
登录 后发表回答