2012-10-21 21 views
23

Mam następującą linię w moim kodu:Dlaczego System.Diagnostics.Debug.WriteLine nie działa w programie Visual Studio 2010 C#?

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

Kiedy debugowanie widzę, że idzie do tej linii, ale kiedy patrzę na okna wyjściowego w Visual Studio     2010 nie widzę nic nawet chociaż pokazuje "Debugowanie" i uruchomiłem przy użyciu "debug> run". Czemu?

+0

Czy wykonanie trwa * za * tą linią lub * do * tej linii? 'top' lub' sub' może również powodować 'IndexOutOfRangeException', jeśli znajdują się poza granicami tablicy. – Adam

+0

Muszę zapytać: Czy ta linia została napisana podczas uruchamiania? Ponieważ czasami jest napisany za linią napisaną przez samą bibliotekę .NET i spada poza ekran. Może spróbuj skopiować wklej ten kod z konsoli do notatnika i poszukaj oczekiwanej linii, aby stwierdzić, że tak naprawdę tam nie ma. – Silvermind

+0

wykonanie przechodzi obok tej linii bez żadnego problemu. Myślałem, że to wszystko działa wcześniej, ale teraz nic nie widzę. –

Odpowiedz

15

Sprawdź następujące pozycje -

  1. DEBUG wybrany tryb podczas debugowania
  2. Debug opcja jest zaznaczona w oknie Output - enter image description here
  3. Zobacz, czy przerwania jest uderzanie Debug.WriteLine w kodzie
  4. Insert Debug.AutoFlush = true na początku kodu
  5. Spróbuj sprawdzić, czy Platforma dla rozwiązanie jest ustawione na Dowolny procesor, a nie na x86 (lub x64).
  6. Goto Właściwości projektu -> Internet - W sekcji Debugger, sprawdź zastrzeżeniem możliwości ASP.NET

Odesłanie Point #5 (przeczytaj komentarz, on pracował dla tego faceta)

+0

Pokazuje jako "Pokaż wyjście z debugowania". Spróbuję opcji flush. –

+1

@Anne - Zobacz też punkt # 5 i # 6 powyżej. –

+3

Wydaje się, że punkt 4 to naprawił. Wielkie dzięki. –

6

w swojej aplikacji Plik .config, upewnij się, że nie masz elementu <clear/> w detektorach śledzenia.

Będziesz skutecznie usuwał listę detektorów śledzenia, w tym domyślny detektor śledzenia używany do debugowania instrukcji.

Oto, co to będzie wyglądać w pliku app.config:

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

Dla mnie musiałem usunąć tę linię: ProVega

10

Dla mnie to rozwiązało problem:

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

(używając Trace zamiast Debug)

+0

Heck yeah, pracował też dla mnie, w końcu. – bargoras

+1

Nie działa dla mnie. Nadal się nie wyświetla. –

1

Dla mnie musiałem zrobić to, aby rozwiązać problem:

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

Voila!

Powiązane problemy