为什么我的C#调试器会跳过断点?

19 .net c# debugging

我的C#调试器无法正常工作.它有时会跳过断点和代码行.我检查了配置管理器.我甚至尝试将我的项目添加到新的解决方案文件中.有人可以帮帮我吗?

Jus*_*tin 27

我的调试清单:

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

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

  • 禁用"Just My Code ..."为我做了这件事.谢谢. (4认同)

Tho*_*que 10

确保禁用优化(这是Debug配置的defaut,但它们在Release配置中启用).编译器优化可能会破坏调试器...


Mar*_*ell 5

你确定它编译正确吗?听起来像你正在调试以前的版本,如果构建失败可能会发生(可能是代码错误,也许是文件是只读的).