Debug clear

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Bit-Bieger.

    Debug clear

    Hey Leute,
    bislang habe ich sehr gerne mit der Debug Funktion gearbeitet, um mir wärend der Programmerstellung diverse Werte anzuschauen.
    Debug.WriteLine(myVariable)

    Dabei werden solange ich das Projekt im "VB 2010 Express" offen habe die jeweiligen Ausgaben erweitert.
    Also ich Debugge, ändere meinen Code, Debugge wieder und ich sehe im Direktfenster die alte, sowie die neue Debug-Ausgabe.

    Jetzt bin ich an einem Punkt angekommen, wo mich dies stört^^
    Ich würde es gern haben, dass ausschließlich die aktuelle Debuginformation im Direktfenster angezeigt wird.

    Tantchen google und die SuFu geben viele Tipps dazu, die ich jedoch entweder falsch verstehe oder wozu zu doof bin ; - )
    clear, flush und co. ändern rein garnix ...

    Habt Ihr einen Tipp wie ich meinen Debugger entleeren kann?

    Ich stelle es mir folgendermaßen vor:

    Quellcode

    1. Debug.clear
    2. ' durchlaufe meinen Code
    3. Debug.WriteLine(myVariable)


    und es erscheint lediglich die letzte durchlaufene Debug.Writeline

    Gruß,
    Dragon
    Arbeite mit dem Überwachen-Fenster (im Einzelschritt-Modus), da wird eine Variable, die sich beie inem Debug-Schritt geändert hat, rot angezeigt.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich hab eben probiert, nicht über Debug, sondern über Console die Ausgaben zu machen, aber Console.Clear() führt zu einer Exception. ;(
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hey BjöNi,
    wir hatten Überkreuz geantwortet. Daher habe ich auf Deine Antwort gerade nicht reagiert.
    Inzwischen habe ich mir Deinen Link mal angeschaut in den letzten 3 Beiträgen einen interessanten Code gefunden (c# to vb.net Übersetzt).
    Es steht auch da, dass man die EnvDTE& EnvDT8 noch als Verweis zufügen muss. Inzwischen habe ich ALLE EnvDTE´s hinzugefügt ...

    VB.NET-Quellcode

    1. ' per Button mit Call ClearOutput() aufgerufen
    2. Private Sub ClearOutput()
    3. Dim ide As EnvDTE80.DTE2 = DirectCast(System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.9.0"), EnvDTE80.DTE2)
    4. ide.ExecuteCommand("Edit.ClearOutputWindow", "")
    5. System.Runtime.InteropServices.Marshal.ReleaseComObject(ide)
    6. End Sub
    7. ' Ungültige Klassenzeichenfolge (Ausnahme von HRESULT: 0x800401F3 (CO_E_CLASSSTRING))


    Allerdings bekomme ich es nicht hin. Zugegeben, diese Lösung erscheint mir auch mit Kanonen auf Spatzen ..... Aber bin halt auch neugierig ;)
    Wenn man schon so klasse Lösungsansätze geliefert bekommt.

    @ Rod & all:
    Ich bastel daran noch ein wenig weiter! Schon einmal DANKE für Eure Ansätze.

    Gruß,
    Dragon

    DragonRE schrieb:

    VisualStudio.DTE.9.0
    Probier mal mal "10.0", da du VS 2010 hast (in besagtem Thread ging es um VS 2008, also "9.0". Wenn es dann nicht geht, kann ich dir auch nicht helfen.
    Hey Leute, hatte das gleiche Problem.

    Das hier funktioniert bei mir nun unter vs2015:
    (vielleicht mag es jemand unter vs2019 testen?)

    Verweise hinzufügen:
    - envdte80
    - envdte

    VB.NET-Quellcode

    1. 'clear debug output window
    2. Sub DEBUG_ClearConsole()
    3. Dim ide As EnvDTE80.DTE2 = DirectCast(System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE"), EnvDTE80.DTE2)
    4. ide.ExecuteCommand("edit.clearoutputwindow", "")
    5. System.Runtime.InteropServices.Marshal.ReleaseComObject(ide)
    6. End Sub