我在我的.Net应用程序中使用SysInternals DebugView。我尝试使用.Net Debug类的Indent功能,但DebugView似乎只是将其表示为NewLine字符。
有谁知道是否可以让DebugView显示缩进?
示例代码:
static void Main (string[] args)
{
Debug.WriteLine("Indent level: {0}", Debug.IndentLevel);
Debug.Indent();
Debug.WriteLine("Indent level: {0}", Debug.IndentLevel);
Debug.Indent();
Debug.WriteLine("Indent level: {0}", Debug.IndentLevel);
Debug.Indent();
Debug.WriteLine("Indent level: {0}", Debug.IndentLevel);
Debug.Unindent();
Debug.WriteLine("Indent level: {0}", Debug.IndentLevel);
Debug.Unindent();
Debug.WriteLine("Indent level: {0}", Debug.IndentLevel);
Debug.Unindent();
Debug.WriteLine("Indent level: {0}", Debug.IndentLevel);
}
输出:
[9632] Indent level: 0
[9632]
[9632] Indent level: 1
[9632]
[9632]
[9632] Indent level: 2
[9632]
[9632]
[9632]
[9632] Indent level: 3
[9632]
[9632]
[9632] Indent level: 2
[9632]
[9632] Indent level: 1
[9632] Indent level: 0
我想看到的内容:
[9632] Indent level: 0
[9632] Indent level: 1
[9632] Indent level: 2
[9632] Indent level: 3
[9632] Indent level: 2
[9632] Indent level: 1
[9632] Indent level: 0
里克多维
答案 0 :(得分:2)
但是等等!看起来有可能。您只需要选项菜单关闭 强制回车功能。
我在这里找到了答案: http://forum.sysinternals.com/topic26797_post131196.html#131196
以下是文字:
默认情况下,启用“强制回车”选项,该选项显示传递的每个字符串 在单独的行上调试输出函数,无论该文本是否以a终止 回车。如果在“选项”菜单中禁用该选项,则DebugView将缓冲输出 内存中的文本,只有在遇到回车符时才将其添加到显示器中 内存缓冲区已填满(大约4192个字符)。这允许应用程序和驱动程序 构建具有多个调试输出函数调用的输出行。
答案 1 :(得分:1)
我认为你不能让DebugView这样做。它捕获单个输出写入,因此当您执行Debug.WriteLine
调试类时,单独输出缩进空间作为单独的OutputDebugString
调用。您仍然可以做的是自己添加缩进空间并将您的写入映射到单个底层API调用:
string currentIndent = " ";
// ...
Debug.WriteLine(currentIndent + "Indent level: {0}", Debug.IndentLevel);