Windows 7上的.NET源代码调试
我们正试图在运行.NET Framework 3.5 SP1的Windows 7 Enterprise RTM(64位)桌面上通过SQL Server Compact问题进行调试。 应用程序崩溃一致,并且我们正在尝试为Visual Studio 2008 SP1设置.NET Framework调试。 利用互联网上分散的资源,我们设置了以下选项:
当我们运行该应用程序时,我们无法步入源代码,并且仍然出现错误
这个位置没有源代码。
我们确实得到了指示SQL Server Compact符号已加载的堆栈跟踪,并且当我们单击错误对话框上的详细信息时,会收到一条消息,指出SQL Server Compact PDB文件已正确加载。
我确实发现了一篇博文,指出这是Windows 7中未更新的符号,而Visual Studio 2008 SP1 .NET Framework Source Debugging是一个问题。
但是,我找不到有关这个问题的任何官方信息。 有什么我失踪? Windows 7符号是不正确的。 如果是这样,他们什么时候更新?
我的Windows 7版本是64位。 我们还在Windows Vista 64位上测试了相同的情况,并收到了相同的问题和错误。 它说它装载了PDB,但它声称在该位置没有源代码。
我的猜测是你的DLL文件是发布版本,所以JIT编译器正在优化一些函数调用(它通常会内联小函数)。 这意味着,当运行时试图将jitted代码翻译回PDB时,它会变得困惑。
尝试将.ini文件添加到应用程序根目录; 所以如果您的应用程序是prog.exe
,请将prog.ini
添加到以下内容中;
[.NET Framework Debugging Control]
GenerateTrackingInfo=1
AllowOptimize=0
这将停止JIT编译器优化掉通话,并让您的PDB文件在您的代码中引用正确的通话。 您需要重新启动应用程序,并且因为它没有进行优化运行,所以它会降低到DEBUG编译级别,但您应该能够正确连接调试程序。
在项目构建属性中,可以选择运行哪种体系结构 - x86或x64。 出于调试目的,您可能会尝试切换到x86; 它可能允许您调试并发现您的问题。
链接地址: http://www.djcxy.com/p/74541.html上一篇: .NET source debugging on Windows 7
下一篇: Visual Studio 2010 Professional: How to access Modules window?