I have a custom module that has been built and added as a reference in my
test cases project. They are both in debug mode, both have .pdb files in
their assocaited \bin directories.
Everytime I go to debug I get this message:
"The following module was built either with optimizations enabled or without
debug information:
C:\WINDOWS\assembly\GAC_MSIL\Kailua\1.0.3.0_86d340ffca32cc5b\Kailua.dll
To debug this module, change its project build configuration to Debug mode.
To surpress this message, disable the 'Warn if no user code on launch'
debugger action. "
I am not able to step into code that is referenced by my test cases. Any
suggestions are greatly appreciated.
--------------------------
Here is the output I get from the debugger:
'ProcessInvocation.exe' (Managed): Loaded
'C:\WINDOWS\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll',
Skipped loading symbols. Module is optimized and the debugger option 'Just My
Code' is enabled.
'ProcessInvocation.exe' (Managed): Loaded 'C:\Program Files\TestDriven.NET
2.0\ProcessInvocation.exe', No symbols loaded.
'ProcessInvocation.exe' (Managed): Loaded 'C:\Program Files\TestDriven.NET
2.0\TestDriven.TestRunner.Server.dll', No symbols loaded.
'ProcessInvocation.exe' (Managed): Loaded
'C:\WINDOWS\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll',
Skipped loading symbols. Module is optimized and the debugger option 'Just My
Code' is enabled.
'ProcessInvocation.exe' (Managed): Loaded 'C:\Program Files\TestDriven.NET
2.0\TestDriven.TestRunner.dll', No symbols loaded.
'ProcessInvocation.exe' (Managed): Loaded
'C:\WINDOWS\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml.dll',
Skipped loading symbols. Module is optimized and the debugger option 'Just My
Code' is enabled.
'ProcessInvocation.exe' (Managed): Loaded
'C:\WINDOWS\assembly\GAC_MSIL\System.Runtime.Remoting\2.0.0.0__b77a5c561934e089\System.Runtime.Remoting.dll',
Skipped loading symbols. Module is optimized and the debugger option 'Just My
Code' is enabled.
'ProcessInvocation.exe' (Managed): Loaded
'C:\WINDOWS\assembly\GAC_MSIL\System.Configuration\2.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll',
Skipped loading symbols. Module is optimized and the debugger option 'Just My
Code' is enabled.
'ProcessInvocation.exe' (Managed): Loaded 'C:\Program Files\TestDriven.NET
2.0\TestDriven.Services.dll', No symbols loaded.
'ProcessInvocation.exe' (Managed): Loaded 'C:\Program Files\TestDriven.NET
2.0\TestDriven.Framework.dll', No symbols loaded.
'ProcessInvocation.exe' (Managed): Loaded 'C:\Program Files\TestDriven.NET
2.0\NUnit\nunit.addin.dll', No symbols loaded.
'ProcessInvocation.exe' (Managed): Loaded
'C:\src\kahuna\TestKailua\bin\Debug\TestKailua.dll', Symbols loaded.
'ProcessInvocation.exe' (Managed): Loaded 'C:\Program Files\TestDriven.NET
2.0\NUnit\nunit.core.dll', No symbols loaded.
'ProcessInvocation.exe' (Managed): Loaded
'C:\WINDOWS\assembly\GAC_MSIL\nunit.framework\2.2.8.0__96d09a1eb7f44a77\nunit.framework.dll', No symbols loaded.
'ProcessInvocation.exe' (Managed): Loaded 'C:\Program Files\TestDriven.NET
2.0\NUnit\nunit.core.extensions.dll', No symbols loaded.
'ProcessInvocation.exe' (Managed): Loaded 'C:\Program Files\TestDriven.NET
2.0\NUnit\TestDriven.UnitTesting.dll', No symbols loaded.
'ProcessInvocation.exe' (Managed): Loaded
'C:\WINDOWS\assembly\GAC_32\System.Web\2.0.0.0__b03f5f7f11d50a3a\System.Web.dll', No symbols loaded.
'ProcessInvocation.exe' (Managed): Loaded
'C:\WINDOWS\assembly\GAC_MSIL\Kailua\1.0.3.0__86d340ffca32cc5b\Kailua.dll',
No symbols loaded.
'ProcessInvocation.exe' (Managed): Loaded
'C:\WINDOWS\assembly\GAC_32\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll', No symbols loaded.
A first chance exception of type 'System.ArgumentNullException' occurred in
mscorlib.dll
'ProcessInvocation.exe' (Managed): Loaded
'C:\WINDOWS\assembly\GAC_32\System.Transactions\2.0.0.0__b77a5c561934e089\System.Transactions.dll', No symbols loaded.
'ProcessInvocation.exe' (Managed): Loaded
'C:\WINDOWS\assembly\GAC_32\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll', No symbols loaded.
The program '[5740] ProcessInvocation.exe: Managed' has exited with code 0
(0x0).

Signature
thanks - dave
david_at_windward_dot_net
http://www.windwardreports.com
Cubicle Wars - http://www.windwardreports.com/film.htm
Jeffrey Tan[MSFT] - 17 Mar 2008 05:00 GMT
Hi Dave,
First, is "Kailua.dll" your custom module? It seems that it is deployed
into the GAC, yes?
The .Net loader will first probe the system GAC before probing your private
folders, please refer to the link below for details of .Net loader orders:
"How the Runtime Locates Assemblies"
http://msdn2.microsoft.com/en-us/library/yx7xezcf.aspx
One way to tell your debugger to find the pdb symbol file is placing the
"pdb" file in the same folder as your Kailua.dll in the GAC. Another
approach is setting your pdb symbol path in the Options->Debugging->Symbols
dialog. This path will tell the debugger where to find your pdb files. (By
default, it will only probe the same folder of that assembly, which is in
the GAC)
Second, based on the debugger output, "Just My Code" option is turned on
which is not convenient for some debugging scenario, so I would recommend
you to turn it off. You may turn off "Just My Code" in
Tools->Options->Debugging->General->Just My Code. Please refer to the
articles below to understand "Just My Code" option:
"Is 'Just my Code' for you?"
http://blogs.msdn.com/greggm/archive/2004/07/29/201315.aspx
http://msdn2.microsoft.com/en-us/library/h5e30exc.aspx
Hope this helps.
Best regards,
Jeffrey Tan
Microsoft Online Community Support
Delighting our customers is our #1 priority. We welcome your comments and
suggestions about how we can improve the support we provide to you. Please
feel free to let my manager know what you think of the level of service
provided. You can send feedback directly to my manager at:
msdnmg@microsoft.com.
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.
Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
David Thielen - 17 Mar 2008 16:36 GMT
That was it - thanks.
I wish Visual Studio would look at the built DLLs first for projects in the
solution...

Signature
thanks - dave
david_at_windward_dot_net
http://www.windwardreports.com
Cubicle Wars - http://www.windwardreports.com/film.htm
> Hi Dave,
>
[quoted text clipped - 52 lines]
> ==================================================
> This posting is provided "AS IS" with no warranties, and confers no rights.
Jeffrey Tan[MSFT] - 18 Mar 2008 03:50 GMT
Hi Dave,
Thanks for your feedback.
This is not a feature of Visual Studio. It is the .Net loader algorithm
that probes the GAC first. This is documented in the link below:
http://msdn2.microsoft.com/en-us/library/yx7xezcf.aspx
Note: .Net loader will only probe GAC for strong named assembly. This
algorithm decision is introduced to address the DLL Hell and version
conflict problem pre-.Net. So, for debugging purpose, you may not deploy
your strong named assembly into the GAC. Once the .Net loader can not find
your strong named assembly in GAC, it will use your private folder assembly
instead. This will be convenient for development debugging.
Additionally, one approach to find out where your assembly is loaded from
is using Debug->Windows->Modules window. In this window, you can find your
assembly module and its full path.
Hope this makes sense.
Best regards,
Jeffrey Tan
Microsoft Online Community Support
Delighting our customers is our #1 priority. We welcome your comments and
suggestions about how we can improve the support we provide to you. Please
feel free to let my manager know what you think of the level of service
provided. You can send feedback directly to my manager at:
msdnmg@microsoft.com.
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.
Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.