Announcement

Collapse
No announcement yet.

Post Mortem Debugging, MiniDumpWriteDump() etc.

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Post Mortem Debugging, MiniDumpWriteDump() etc.

    Hi,

    ich habe eine Frage bzgl. Post Mortem Debugging mit dem C++Builder XE. Und zwar bietet Windows ja Möglichkeit ein Dump-File zu schreiben (MiniDumpWriteDump()). Bringt mir dieses File denn irgend was für Applikationen die mit C++BuilderXE geschrieben und kompiliert wurden?

    Für eine sinnvolle Analyse des dumps wird ja das .pdb File benötigt, welches aber nur von VisualStudio erzeugt wird, und nicht vom C++BuilderXE.

    Mit tds2pdb hatte ich auch schon versucht das .tds file in ein .pdb file zu konvertieren, allerdings mit dem Ergebnis dass die Konvertierung irgendwann abgebrochen hat und das .pdb File nicht vom VS als solches erkannt wurde.

    Bietet C++BuilderXE evtl. eine eigene API zum Schreiben und analysieren von Crashdumps? Falls ja, hat mir mal jemand evtl. ein Stichwort? Falls nein, wie kann ich am sinnvollsten Post Mortem Debugging betreiben wenn meine Entwicklungsumgebung C++BuilderXE ist?

    Danke.

  • #2
    schau mal hier nach.
    http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

    gruß Fred

    Comment


    • #3
      Hi,

      danke für die Antwort. Die API hatte ich mir schon angeschaut, insbesondere SymFromAddr(). Diese Funktion benötigt allerdings ebenfalls das .pdb file (sieht man daran, dass es nicht funktioniert wenn das .pdb File fehlt, oder mit SysInternals procmon sieht man auch die Zugriffe auf das .pdb File).

      Mein momentaner Ansatz ist, dass ich mir den CallStack mit CaptureStackBackTrace() hole, und dann die Adressen Offline mit dem .map file auf die Funktionen bzw. Methoden mappe.

      Das ist zwar ganz ok aber es wäre natürlich wesentlich schöner wenn C++Builder auch was ähnliches wie VS bieten würde was das Thema angeht. Gibt es da sonst wirklich nichts? Kann der C++Builder evtl. .pdb kompatible Files erzeugen die die Debug Symbole enthalten?

      Bietet der C++Builder vielleicht irgend eine andere API mit der ein Dump erzeugt werden kann?

      Comment


      • #4
        In CBuilder kannst du nur mit deinen eigenen debugger-infos arbeiten
        (soweit meine erfahrung)
        TDump steht dir auch noch zur verfügung.
        Ansonsten kann ich nur empfehlen das programm richtig zu schreiben und zu testen.
        Wenn ich auf eine dumpausgabe von microsoft angewiesen bin, macht man schon was falsch.
        Es reicht eigentlich immer eine beschreibung wie es zu einem fehler gekommen ist.
        Beim entwickeln und testen sollte man am besten codeguard einschalten.

        Immer schön try/catch verwenden! Hilft ungemein
        Noch einen tipp->logfile schreiben

        gruß fred

        Comment

        Working...
        X