2010-03-26 25 views
16

Tôi không thấy bất kỳ đầu ra trong giao diện điều khiển hoặc Visual bảng điều khiển đầu ra Studio từ:Đầu ra của Debug.Write() của .NET ở đâu?

Debug.Write("WriteStatements() was reached") 

đâu đầu ra đi?

+2

Nếu bạn không nhìn thấy đầu ra trong cửa sổ * Output * của Visual Studio, hãy đảm bảo rằng bạn đã chọn * Hiển thị kết xuất từ ​​Debug * trong danh sách thả xuống. –

Trả lời

15

Nó ghi vào các dấu vết mặc định người nghe, mà bạn sẽ cần phải bật:

Debug.Write Method

Nếu bạn muốn điều này hướng đến giao diện điều khiển bạn sẽ cần phải thêm một thể hiện của ConsoleTraceListener:

Trong tệp .config của bạn đảm bảo bạn có các mục sau:

<configuration> 
    <system.diagnostics> 
    <trace autoflush="false" indentsize="4"> 
     <listeners> 
     <add name="configConsoleListener" 
      type="System.Diagnostics.ConsoleTraceListener" /> 
     </listeners> 
    </trace> 
    </system.diagnostics> 
</configuration> 

Bạn cũng có thể cần phải đảm bảo rằng bạn đã bao gồm cờ /d:TRACE khi biên soạn dự án của mình để cho phép đầu ra.

+1

Không có người nghe mặc định? – Ricky

+1

@Ricky Có một DefaultTraceListener (http://msdn.microsoft.com/en-us/library/system.diagnostics.defaulttracelistener.aspx), mà rõ ràng sẽ "phát ra thông báo tới hàm OutputDebugString của Win32 và tới Debugger. Để biết thông tin về hàm OutputDebugString, hãy xem Platform SDK hoặc MSDN ", nhưng bạn muốn nó trong cửa sổ Console/Output, cần có ConsoleTraceListener. –

+0

Bạn chưa thấy bình luận của mình cho đến khi tôi đăng câu trả lời, xin lỗi. –

16

Câu trả lời của Zhaph đã cho bạn biết cách để có được kết quả của Debug.Write.

Dưới mui xe, trình nghe mặc định cho Debug.Write, tức là System.Diagnostics.DefaultTraceListener, gọi hàm Windows API OutputDebugString.

Bất kỳ thư nào được truyền cho hàm đó đều có thể được trình gỡ rối hiển thị, ví dụ: bạn sẽ thấy đầu ra trong cửa sổ Đầu ra của Visual Studio.

Một cách khá đơn giản để xem kết quả của Debug.Write và/hoặc Trace.Write là sử dụng DebugView, một công cụ từ Sysinternals:

DebugView là một ứng dụng cho phép bạn theo dõi kết xuất debug trên hệ thống địa phương của bạn hoặc bất kỳ máy tính nào trên mạng mà bạn có thể truy cập qua TCP/IP. Đó là có khả năng hiển thị cả hai chế độ hạt nhân và đầu ra gỡ lỗi Win32, vì vậy bạn không cần cần trình gỡ rối để bắt gỡ lỗi xuất các ứng dụng hoặc thiết bị của bạn. để sử dụng API đầu ra gỡ lỗi không chuẩn.

Xin lưu ý rằng các tuyên bố Debug.Write sẽ không được đưa vào Bản xây dựng bản phát hành, do đó bạn chỉ thấy kết quả trong bản dựng Gỡ lỗi.

+1

+1 cho DebugView :) –

+0

Tôi phải nói, đây là một công cụ phi thường khi gỡ lỗi kiểm thử. Đôi khi bạn cần xem kết quả đầu ra mà không cần trình gỡ rối đang chạy. Cảm ơn Dirk! –

Các vấn đề liên quan