【问题标题】:Debugging techniques c++ in Visual Studio 2013Visual Studio 2013 中的调试技术 c++
【发布时间】:2014-08-05 13:00:10
【问题描述】:

我在 Visual Studio 2013 中开发,有几个关于调试的问题:

  1. 是否可以有一组断点我可以一起启用/禁用? 有时我可能正在处理功能“a”,然后需要处理功能“b” '。能够对断点进行分组并一次性禁用它们会非常方便!

  2. 是否可以有一个变量,一个值用于调试构建,另一个用于发布构建? 使用 opencv,当我处于调试模式时,我喜欢查看不会在发布中显示的图像数据,所以我设置了一个 bool 变量来控制它,我必须在切换构建时不断更改!

【问题讨论】:

    标签: c++ visual-studio debugging


    【解决方案1】:

    1 - 是的,从 VS 2010 开始,您可以将断点标记为组。

    http://msdn.microsoft.com/en-us/library/vstudio/dd293674(v=vs.100).aspx http://weblogs.asp.net/scottgu/vs-2010-debugger-improvements-breakpoints-datatips-import-export

    简单地说,右键单击一个断点,单击编辑标签...,然后添加一个新的(例如解析器),或者选择一个以前的。要按标签切换组,请转到断点窗口(调试 -> 窗口 -> 断点),将条件“列中”更改为标签,然后在搜索中键入 parser。然后你可以切换结果。

    2 - 使用条件编译宏

    #ifdef DEBUG
    int verbose = 1;
    #else
    int verbose = 0;
    #endif
    

    【讨论】:

    • 太棒了 - 谢谢!我很高兴看到 #2 就这么简单,而 #1 也同样合乎逻辑!
    • 我刚刚尝试将#2 的代码添加到主 cpp 文件中,只是为了让它被忽略?
    • DEBUG 是一个示例,假设您有一个标准的 DEBUG 构建配置,并且当前将其选为活动构建。
    • 我不确定#ifdef DEBUG,但#ifdef _DEBUG 适合我
    【解决方案2】:

    对于第二个问题,可以使用预处理器条件特性:

    #ifdef DEBUG
    // Building debug variant
    #else
    // Building something else
    #endif
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-11
      相关资源
      最近更新 更多