Hi Leute !
Ich hab 2 Fragen zum Debugger unter Visual C++ 6.0:
1.) Der Befehl "OutputDebugString" ermöglicht es mir, einen String an das Debug-Fenster der VC++-Anwendung zu senden! Das möchte ich natürlich nur machen, wenn der Debugger auch tatsächlich läuft!
Gibt es eine Möglichkeit das herauszufinden (über ein Makro??)
2.) Dieser o. g. "OutputDebugString" nutzt unter DirectX nur solange was, wie die Anwendung nicht den ganzen Rechner zum abstürzen bringt. Ist das der Fall, so wird beim erneuten Starten von VC++ dieses Debug-Fenster geleert, und alle Infos sind futsch . . .
Hat einer von euch vielleicht einen Tip, wie man besser Debuggen kann???
Ich hab z. B. mal was von einem Terminal oder Konsolen Debugger gehört, da schließt man wohl einen kleinen 2. PC an, an den dann die Ausgabe geleitet wird, ich habe das Dokument aber damals nicht verstanden ( und nun hab ich es nicht mehr . . . )
Eine einfache Ausgabe in eine Text-Datei würde mir mittlerweile auch schon reichen . . .
Vielen Dank schonmal für eure zahlreichen Tips . . . ;-)
Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge
hi.
OutputDebugString() tut nichts, wenn die anwendung nicht vom debugger geladenwurde un der system debugger nicht aktiv ist. du kannst aber ausserdem
#ifdef _DEBUG
#endif
um den aufruf rumbauen, oder alternativ direkt TRACE() verwenden - in beiden faellen enthalten die nicht-debug builds dann erst gar keinen aufruf dieser funktion mehr.
console debugger ist nicht so toll - dazu kannst du zum einen _nicht_ den vc++ debugger verwenden, zum anderen gehts nur ueber einen seriellen port. diese sache ist eher fuer entwickler von geraetetreibern gedacht.
was hingegen ganz gut ist ist das debuggen mit zwei rechnern. dazu muessen bei per tcp verbunden sein, die zu debuggende anwendung laueft dann auf dem einen, vc++ auf dem anderen pc. alle infos dazu findest du, wenn du in der online-hilfe nach 'remote debugging vc++' suchst.
wenn es dir aber ausreicht ein protokoll in eine textdatei zu schreiben ist es villeicht einfach das TRACE() makro zu verwenden und dann afxtrace.cpp so zu veraendern das es nicht mit OutputDebugString() operiert sondern in ein file schreibt.
WM_HOPETHISHELPS
thomas woelfer