2012-10-21 20 views
23

Tôi có dòng sau trong mã của tôi:Tại sao System.Diagnostics.Debug.WriteLine không hoạt động trong Visual Studio 2010 C#?

System.Diagnostics.Debug.WriteLine("Title:" + title + "title[top]: " + title[top] + "title[sub]: " + title[sub]); 

Khi tôi gỡ lỗi tôi thấy nó đi đến đường dây này, nhưng khi tôi nhìn vào cửa sổ đầu ra trong Visual Studio     2010 tôi không thấy bất cứ điều gì, ngay cả mặc dù nó cho thấy "Debug" và tôi chạy bằng cách sử dụng "debug> run". Tại sao?

+0

Việc thực hiện có đi * quá khứ * dòng đó hoặc * đến * dòng đó không? 'top' hoặc' sub' cũng có thể gây ra 'IndexOutOfRangeException' nếu chúng nằm ngoài giới hạn của mảng. – Adam

+0

Tôi phải hỏi: Dòng này có được viết trong khi khởi động không? Bởi vì đôi khi nó được viết phía sau một dòng được viết bởi chính thư viện .NET và rơi ra ngoài màn hình. Có thể cố gắng sao chép dán mã đó vào giao diện điều khiển trong notepad và tìm kiếm dòng mong muốn để xác định nó thực sự không có ở đó. Thực hiện – Silvermind

+0

vượt qua dòng đó mà không gặp bất kỳ sự cố nào. Tôi nghĩ rằng tất cả điều này đã hoạt động trước nhưng giờ không thể nhìn thấy gì cả. –

Trả lời

15

Kiểm tra sau mục -

  1. DEBUG chế độ được chọn trong khi gỡ lỗi
  2. Debug tùy chọn được chọn trong cửa sổ Output - enter image description here
  3. Xem nếu breakpoint được đánh Debug.WriteLine trong mã
  4. Insert Debug.AutoFlush = true ở đầu mã
  5. Hãy thử kiểm tra xem Nền tảng cho giải pháp được đặt thành CPU bất kỳ chứ không phải x86 (hoặc x64).
  6. Chuyển Project Properties -> Web - Trong phần Debugger, đánh dấu vào tùy chọn ASP.NET

tham chiếu cho Point #5 (Đọc bình luận, Nó làm việc cho anh chàng đó)

+0

Nó hiển thị dưới dạng "Hiển thị đầu ra từ Gỡ lỗi". Tôi sẽ thử tùy chọn tuôn ra. –

+1

@Anne - Vui lòng xem điểm # 5 & # 6 cũng ở trên ans. –

+3

Điểm 4 dường như sửa chữa nó. Cảm ơn rất nhiều. –

6

Trong ứng dụng của bạn Tệp .config, đảm bảo bạn không có phần tử <clear/> trong trình theo dõi của bạn.

Bạn có hiệu quả sẽ xóa danh sách trình theo dõi, bao gồm trình theo dõi mặc định được sử dụng cho các câu lệnh Gỡ lỗi.

Đây là những gì điều này sẽ trông giống như trong file app.config của bạn:

<system.diagnostics> 
    <trace> 
     <listeners> 
      <!-- This next line is the troublemaker. If it is there delete it--> 
      <clear/> 
     </listeners> 
    </trace> 
    </system.diagnostics> 
+0

Đối với tôi, tôi đã phải loại bỏ dòng này: ProVega

10

Đối với tôi, điều này đã giải quyết được vấn đề:

System.Diagnostics.Trace.WriteLine("whatever"); 

(sử dụng Trace thay vì Debug)

+0

Heck yeah, làm việc cho tôi quá, cuối cùng. – bargoras

+1

Không hiệu quả với tôi. Vẫn không hiển thị. –

1

Đối với tôi, tôi cần thực hiện việc này để giải quyết vấn đề:

1. Open the project's property page 
2. Under Build tab, check "Define DEBUG constant" and "Define Trace constant" 

Thì đấy!

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