2011-10-07 4 views
0

내 .Net 응용 프로그램과 함께 SysInternals DebugView를 사용하고 있습니다. 나는 닷넷 디버그 클래스의 들여 쓰기 기능을 사용하여 시도했지만 DebugView 그냥 NewLine 문자로 나타낼 것으로 보인다.들여 쓰기를 표시하는 SysInternals DebugView를 얻으려면 어떻게해야합니까?

들여 쓰기를 표시하는 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 

답변

2

그러나 잠깐! 가능한 것처럼 보입니다. 을 꺼내려면강제 전송 캐쉬 리턴 기능이 옵션 메뉴에 있습니다. 내가 여기에 대한 답을 발견

:

기본적으로

, 강제 운송 옵션이 활성화되어 반환하는에 디버그 출력 기능에 을 통과 모든 문자열을 표시합니다 : 여기 http://forum.sysinternals.com/topic26797_post131196.html#131196

텍스트입니다 해당 문자가 캐리지 리턴으로 종결되었는지 여부에 관계없이 별도의 줄 옵션 메뉴에서 해당 옵션을 사용할 수 없도록 설정하면 DebugView는 출력 문자 을 메모리에 버퍼링하고 캐리지 리턴이 발생하거나 메모리 버퍼가 채워진 경우 (약 4192 문자)에만 디스플레이에 추가합니다. 이를 통해 응용 프로그램과 드라이버 은 디버그 출력 기능을 여러 번 호출하여 출력 행을 작성할 수 있습니다.

1

DebugView를 이렇게 만들 수 있다고 생각하지 않습니다. 개별 출력 쓰기를 캡처하므로 Debug.WriteLine 디버그 클래스는 들여 쓰기 공간을 개별적으로 OutputDebugString 호출로 출력합니다. 당신이 확실히 여전히 할 수있는 일은 들여 쓰기 공간을 직접 추가하고 쓰기가 하나의 기본 API 호출로 매핑 한 것입니다 :

string currentIndent = " "; 
// ... 
Debug.WriteLine(currentIndent + "Indent level: {0}", Debug.IndentLevel); 
+0

있습니다. 따라서 DebugViewer는 OutputDebugString에 대한 각 호출을 새 행으로 출력합니다. 이제는 의미가 있습니다. 들여 쓰기를 관리하는 여기 아이디어에 약간의 변형을 구현해야 할 것 같습니다. – RikRak