Visual Studio has an option (under Debugging / General) \"Enable Just My Code\"
What is \'Just My Code\'? Visual Studio doesn\'t explain the feature.
From msdn article
Enable Just My CodeWhen this feature is enabled, the debugger displays and steps into user code ("My Code") only, ignoring system code and other code that is optimized or that does not have debugging symbols.
As long as the feature is pretty self-explanatory - debugger skips external code - I think it is also worth mentioning what actually counts as 'My Code' according to Microsoft. In context of the .NET projects that is:
Not My Code:
[DebuggerNonUserCode]
or [DebuggerHidden]
. Also [DebuggerStepThrough]
affects itMy Code:
An easy way to see how project dependencies will be treated by the debugger and if they have debugging symbols loaded is to check the Modules window (Debug -> Windows -> Modules
, visible only during debugging), which offers a User Code
column.
On a practical side, any not-user-code is marked as [External Code], while debugging.
You need PBOs to debug other code such as any library that might be statically or dynamically linked to your code. With the above option, you're only debugging (your) active part of the code.