【问题标题】:Visual Studio insert tabs/newlines in breakpoint print message (tracepoint)?Visual Studio 在断点打印消息(跟踪点)中插入制表符/换行符?
【发布时间】:2010-02-24 16:55:49
【问题描述】:

有人知道如何在断点的打印消息中放置制表符或换行符并使其正确显示吗?

到目前为止,我已经尝试过 '\t' 和 '\n' ,它们在调试输出中给出了相同的结果。我也试过只输入 4 个空格,但在“当断点被命中”对话框中单击“确定”后它们会被删除。

如果有影响的话,我正在使用带有本机代码的 VS.NET 2008。

谢谢。

【问题讨论】:

标签: visual-studio debugging trace breakpoints


【解决方案1】:

您可以通过将其包含在花括号中来指定消息中的任何字符。例如,这将在消息中插入新行:{'\n'}。问题是字符的值和单引号也会被打印出来。我尝试使用各种表达式格式禁用字符值的输出,但没有任何帮助。

这是一个有点笨拙的解决方案,但如果您需要将长语句分成几行,它就可以工作。其他角色也可以。但不要放字符串 ({"\r\n"})。似乎 VS 调试器只能打印单个字符,但字符串文字。

【讨论】:

  • 这对我不起作用(使用 VS 2012)。实际上,打印的所有内容都是单引号中字符的字符串表示形式 ('\n')。我可以接受这样一个事实,即这显示在 addition 到所需的换行符中。但是,根本没有插入换行符。
  • @IInspectable,你是对的。看来他们修好了。我用 VS2013 试过了,还是不行。
【解决方案2】:

在 VS2010 中,您可以将已复制的选项卡粘贴到“打印消息”编辑框中。

【讨论】:

    【解决方案3】:

    我能够在跟踪点输出中创建换行符的唯一方法如下:

    1. 使用换行符的占位符标记创建跟踪点,例如休息;
    2. 将断点导出为 XML(另见 MSDN How to: Import and Export Breakpoints);
    3. 手动编辑 XML 并将 BREAKME 替换为 CDATA 转义,使用您想要的换行符代替标记:

      <![CDATA[
      
      ]]>
      
    4. 从断点中删除跟踪点并重新导入 XML。

    OTOH,如果您将结果用于以后的文本处理,您可以在后期自动替换您的标记,并节省您自己的步骤 2-4...

    免责声明/披露:我在 Microsoft 使用 Visual Studio,但我不开发 Visual Studio 本身;我在这里写的东西没有得到微软的认可,仅表达我的个人意见,等等。

    【讨论】:

      猜你喜欢
      • 2017-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-13
      • 1970-01-01
      • 1970-01-01
      • 2019-06-17
      相关资源
      最近更新 更多