在抛出异常之前查看已调试的.Net应用程序的代码

时间:2009-07-17 09:12:04

标签: .net debugging

我使用Visual Studio 2008连接到正在运行的.net 1.1应用程序。我在本地计算机上有调试符号和代码。如果发生异常,代码弹出正常。但是,我无法弄清楚如何查看代码并预先设置断点。

有诀窍吗?

4 个答案:

答案 0 :(得分:1)

首先,它可能已经一个.NET 1.1应用程序,但是你没有在VS2008中运行.NET 1.1 - 你正在运行.NET 2.0。

其次,诀窍是显而易见的,很明显为什么你不知道 - 打开源文件,并设置断点。

答案 1 :(得分:0)

点击Debug > Break All。应用程序暂停后,打开相关的源文件, 允许您在点击继续之前设置断点。

答案 2 :(得分:0)

cordbg.exe可以调试.Net 1.1进程,你可以在1.1 SDK中使用它,但使用起来相当痛苦。还有Windbg原始SOS。这是Windbg的a good SOS cheat sheet

答案 3 :(得分:0)

我的调试清单:

  • 确保使用正确的代码类型附加到流程 - 如果您的流程同时具有非托管代码和托管代码,则不依赖“auto”为您工作,明确说明您尝试调试的代码类型
  • 转到模块窗口(调试 - > Windows - >模块,您可能需要在“自定义...”菜单中启用它
  • 检查以确保已加载试图调试的程序集,并且已加载符号 - 如果尚未加载,则右键单击该模块并选择“加载符号”
  • 打开您的代码文件并放置您的断点 - 如果它出现时带有小警告符号,那么看看它说的是什么,
  • 您可能需要转到“工具 - >选项 - >调试 - >常规”并取消选中“启用我的代码(仅管理)”
  • 您可能还想取消选中“要求源文件与原始版本完全匹配”,如果您认为您的来源可能略有不同(请注意,因为这可能会导致您使用完全错误的来源进行调试,这可能是非常混乱)

在某些情况下,您可能会发现在附加调试器的位置没有加载模块(例如,如果您有某种插件archetecutre,并且插件程序集仅在您第一次使用时加载) 。在这些情况下,您所能做的就是尝试确保在加载模块时准备好所有内容。