Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo Leute,

habe ein Problem mit der Debug-Ausgabe unter Visual Basic 6.

Ich habe hier dieverse Projekte, in welchen ich zu Debugging-Zwecken mit Debug.Print arbeite, damit man diverse Ausgaben in das Direktfenster bekommt, und nicht immer durch die Anwendung mühevoll durchsteppen muss, um Fehler zu finden.

Nun hatte ich mit einem Projekt Probleme beim Kunden.

Dort wäre es schön gewesen, wenn man auf diese Debug-Meldung hätte zugreifen können, um das Problem bei der Software einzugrenzen. Leider war auf dem Kundensystem keine Entwicklungsumgebung installiert - wie meistens!

Heute habe ich bei sysinternals.com ein Tool gefunden, welche mir in eben dieser Situation weitergeholfen hätte: DebugView

Under Windows NT, 2000, XP and Server 2003 DebugView will capture:

Win32 OutputDebugString

Kernel-mode DbgPrint

All kernel-mode variants of DbgPrint implemented in Windows XP and Server 2003

Habe den mal hier bei mir lokal ausprobiert und musste jetzt leider feststellen, das Debug.Print im Quellcode nicht in dem DebugView angezeigt wird.

Nun die Frage:

Wie kriege ich die Debugmeldungen unter VB so eingebaut, dass die sowohl im Direktfenster als auch im DebugView angezeigt werden?

Geschrieben

ich bin mir nicht sicher, aber mit VB6.exe's gibt nur debugausgaben, wenn in den projekteigenschaften "Compile to Native Code" und "Create Symbolic Debug Info" angehakt ist. es sollten dann auch ein PDB- und ein MAP-file erzeugt werden.

aaaaaber: du müsstest zusätzlich in deiner anwendung das von DebugView geforderte OutputDebugString auch ausführen. ohne gehts nicht.

also versuch mal in einer testanwendung folgende APIs aufzunehmen und auch abzurufen:

Declare Sub OutputDebugString Lib "kernel32" Alias "OutputDebugStringA" (ByVal lpOutputString As String)

Declare Function IsDebuggerPresent Lib "kernel32" () As Long
das abrufen ist dann mit DebugView, WinDbg oder aber auch DBWin32 möglich. alternativ implemntiere deine eigene debug-funktion, die zusätzlich in ein logfile schreibt.
Public Sub DebugLog(ByVal Text As String)

  Debug.Print Text

  #If Debugging Then

  OutputDebugString Text & vbCrLf


  Dim FileNum As Integer

  FileNum = FreeFile

  Open "C:\" & App.Name & "-" & CStr(App.ThreadID) & ".log" For Append As #FileNum

  Print #FileNum, Text

  Close #FileNum

  #End If

End Sub

s'Amstel

Geschrieben

Oder implementier einen Schalter als Kommandozeilenoption (z.b. supiProg --debug) und erzeugst, wenn dieser gesetzt ist, ein zusaetzliches Form indem du eine die Messages ausgibst (evtl kannst du spaeter ja nocht Funktionen wie Print, Save As File, eMail-To-Developer, etc. einbauen).

Das ganze koennte man dann in jedem Programm wiederverwenden.

Geschrieben

Ich würde noch einen dritten Vorschlag machen:

Gibt die Meldungen in einer Textdatei aus.

Ich habe bei meinen meisten VB-Projekten eine Funktion eingebaut, welche mir die gewünschten Informationen im Debug-Fenster und auch gleichzeitig in eine Log-Datei schreibt. Statt Debug.Print rufe ich eben diese Funktion auf.

Ich bin damit immer gut gefahren und der Aufwand ist auch im Rahmen.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...