debugging - 在 VS2010 中调试期间排除某些项目?

标签 debugging visual-studio-2010 symbols step-into

我正在一个大型 VS2010 解决方案(全部在 C# 中)中处理几个项目(A 和 B)。在很多情况下,项目 A 中的方法调用解决方案中的一个或多个我不负责的项目,而这些项目又调用到项目 B。当使用项目 A 中的调试器单步执行时,我被迫在我最终到达对项目 B 的调用之前,在这些我不感兴趣的其他项目中单步执行许多方法。此外,在退出项目 B 时,我必须一路返回调用堆栈在我回到项目 A 之前,那些无趣的方法。

我目前正在通过在项目A和B的入口和导出处设置断点来解决这个问题,但是我发现我的很多时间都花在将这些断点设置在正确的位置上,我觉得我的生活会很多如果我可以禁用某些项目的逐步执行,则更容易。

我知道 DebuggerStepThroughAttribute,但在我的情况下它的使用不可行,因为 (i) 我必须在很多地方添加它,并且 (ii) 我办公室里有兴趣逐步执行此代码的人不会高兴.

有任何想法吗?

最佳答案

是的,这可以通过启用“仅我的代码”并防止为您不关心的 DLL 加载符号来实现。

要启用仅我的代码:

  • 调试 » 选项和设置... » 常规 » 选中“仅启用我的代码(仅限托管)”。

  • 要防止为 DLL 加载符号:
  • 调试 » 选项和设置... » 符号 » 单击“所有模块,除非排除”
  • 点击“指定排除模块”
  • 添加要排除的模块的名称。调试应用程序时不会加载它们的符号。

  • 现在,当您从项目 A 执行 F11 步入通过项目 C 的项目 B 时,只要您没有加载 C 的符号,步入将直接进入 B。

    为确保不加载 C 的符号:
  • 开始调试
  • 到达加载 C 的位置
  • 打开模块窗口 (Ctrl+Alt+U),滚动到 C
  • 的条目
  • “符号状态”列应显示“加载已被包含/排除设置禁用”。
  • 关于debugging - 在 VS2010 中调试期间排除某些项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3878888/

    相关文章:

    file - 找不到另一个类文件的符号

    javascript - 如何在 VS 代码中调试 webpack-dev-server 的内置 express 服务器?

    c++ - 通过指针在 gdb/Eclipse CDT 调试监视中显示真实对象层次结构

    c# - 使用 EnvDTE 创建表单后不会保存

    .net - 我可以中断标有 DebuggerStepThrough 属性的方法吗?

    visual-studio-2010 - .NET Framework 文件夹中不同 EventLogMessages.dll 之间的差异

    javascript - 检查值是否是 JavaScript 中的符号

    debugging - bash 的图形化调试器

    debugging - 免疫调试器上的空白注册窗口

    javascript - 如何从同名符号访问数据用作 JavaScript 中的对象键