none
Das Direkt-Fenster RRS feed

  • Frage

  • Hallo zusammen.

    Ich habe mir in meiner Projekt-Gruppe, die zurzeit aus drei Projekten besteht,  mit größter Anstrengung und Geduld die Mühe gemacht, auf jede (!!!) Zeile Code mindestens eine Zeile mit Debug.WriteLine folgen zu lassen. Dies ist unabdingbar und sorgt für eine klare Ablaufverfolgung. Super!

    Nach Fertigstellung dieser extrem umfangreichen und nervtötenden Arbeit mußte ich feststellen, dass Debug scheibar nicht mehr als 10370 Zeilen aufnehmen kann und für jede neu hinzugefügte Zeile die oberste löscht. Es müßten aber erheblich mehr Zeilen aufgetaucht sein. Nicht Super!

    Bevor ich jetzt völlig verzweifele: Weiß jemand, ob das mit der Anzahl der Zeilen stimmt? Gibt es eine Lösung für dieses Problem? Kann man das, was Debug ins Direkt-Fenster schreibt, eventuell in eine Datei schreiben lassen, ohne das Zeilen verloren gehen?

    Vielen Dank für Eure Hilfe

    VG

    Carsten

    Montag, 12. Dezember 2011 14:01

Antworten

Alle Antworten

  • Hallo Carsten,

    bist Du des Wahnsinns? _Jede_ Codezeile hat nachfolgende Debug.WriteLine ... Kommandos? Nicht wirklich, oder?

    Unabdingbar ist das in dieser Form sicher nicht. Man sollte eher dazu übergehen, diese Angaben an wichtigen/kritischen Stellen zu machen. Um einen Fehler eingrenzen zu können, auch mal etwas mehr als normal. Aber für _jede_ Codezeile?

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Montag, 12. Dezember 2011 14:10
    Moderator
  • Das lässt sich nicht einstellen:

    Zitat von:
    http://blogs.msdn.com/b/zainnab/archive/2010/07/02/customize-the-output-window-vstiptool0044.aspx
    (siehe Kommentare)


    Okay so I pinged Dustin Campbell on the VS Team and here is his answer:

    "To keep memory down, the output window ensures that there is no more than 256MB is taken up by the text in the output window. At  2 bytes per character, that means that no more than 134,217,728 characters can appear. However, that total is spread across all of the output window panes (e.g. “Debug”, “Build”, etc.). When the total amount of text used by each output pane reaches that maximum number, an algorithm is run to reduce the amount of text used by 10%.

    Given that the maximum amount of text is already at ¼ GB, a facility to tweak that number was never added."

    Makes sense from a performance standpoint IMHO.


     Aber Du kannst locke den DebugView verwenden und der zeichnet auf, was Du willst.


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Montag, 12. Dezember 2011 14:12
    Moderator
  • Hallo Carsten,

    bist Du des Wahnsinns? _Jede_ Codezeile hat nachfolgende Debug.WriteLine ... Kommandos? Nicht wirklich, oder?

    Unabdingbar ist das in dieser Form sicher nicht. Man sollte eher dazu übergehen, diese Angaben an wichtigen/kritischen Stellen zu machen. Um einen Fehler eingrenzen zu können, auch mal etwas mehr als normal. Aber für _jede_ Codezeile?

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Hallo Stefan.

    Ja, ich bin des Wahnsinns ;-)  Aber nur so kann ich genau feststellen, ob nicht irgendeine Prozedur sinnloserweise mehrfach aufgerufen wird. Z.B.: In einem C1FlexGrid wird das AfterRowColChange-Ereignis zweimal hintereinander aufgerufen, wenn man die DataSource-Eigenschaft festlegt, selbst wenn man vorher C1FlexGrid.BeginUpdate() aufruft. Ich muß es immer ganz genau wissen.

    Ich werd' mir mal ansehen, was Martin's DebugView ist. Den kenn' ich noch nicht.

    VG

    Carsten

    Montag, 12. Dezember 2011 15:01
  • Hallo Martin.

    Vielen Dank für den Tip mit demDebugView. Ich habe mir das Teil heruntergeladen und werde es 'mal ausprobieren. Es gibt auf jeden fall noch eine Meldung von mir.

    VG

    Carsten

    Montag, 12. Dezember 2011 15:08
  • > Ich werd' mir mal ansehen, was Martin's DebugView ist. Den kenn' ich noch nicht.

    Siehe Sysinternals...
    http://technet.microsoft.com/en-us/sysinternals/bb896647


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    • Als Antwort markiert C. Mehnert Montag, 12. Dezember 2011 16:00
    Montag, 12. Dezember 2011 15:09
    Moderator
  • Hallo Martin und auch Stefan.

    Vielen Dank für Eure Hilfe.

     

    Ich verwende jetzt nicht DebugView, sondern ich habe mir 'mal genau die Listener-Eigenschaft der Debug-Klasse angesehen.

    Ich habe nun einfach am Anfang der absolut ersten aufgerufenen Prozedur meiner ProjektGruppe drei Zeilen eingefügt, die dafür sorgen, dass alles, was Debug so schreibt, in eine Text-Datei geschrieben wird. Mann, wenn ich das vorher gewußt hätte.

    Falls Interesse besteht, hier die drei Zeilen :

    Dim DebugLog As New System.IO.FileStream("C:\DebugLog.txt", System.IO.FileMode.OpenOrCreate)
    Dim TWTL As New TextWriterTraceListener(DebugLog)
    Debug.Listeners.Add(TWTL)
    

    VG

    Carsten

    Montag, 12. Dezember 2011 16:00