Release debuggen



  • Hallo,

    ich hatte einen Crash in meiner DLL. Da ich gerade die Release dieser DLL am Laufen hatte, zeigt mir mein Visual Studio nur Adressen an.
    Gibt es einen Trick von den Adressen auf die Funktion zu schliessen??
    Ich hab da mal probiert mit dem Dependency Walker, der mir ja die Offsets der EntryPoints anzeigt.
    Dann habe ich aus dem Callstack in Visual Studio meinen tatsächlichen Offset berechnet und mit dem im Dependency Walker verglichen -- passt nicht 😕 😕

    Kennt da jemand einen Trick oder wie kann man das machen?

    Danke



  • Du könntest dir ja eine "Semi-Debug"-Version erzeugen - mit den vollen Optimierungen der Release-Version, aber mit aktivierten Debug-Informationen.



  • Kann ich, ja. Der Crash ist aber leider nicht reproduzierbar. Im Moment habe ich nur einen Callstack und ein Haufen Adressen. 😡



  • Ich weis nicht ob das nachträglich geht aber sofern du die Sache auf deinem PC Compeliert hast und die entsprechenden Source Dateien geöffnet hast findet Visual Studio auch oft die entsprechenden Source stellen (Sofern die pcb ? vorhanden).

    Edit: Die pdb Datei ist es.



  • Ich weiß nicht ob man das mit dem VS machen kann. Aber normalerweise erzeugt man einen Core-Dump und untersucht diesen dann mit einer Version, die die Debug-Symbole enthält. Wenn das nicht geht, sollte es sicher möglich sein, dass du die Debug-Symbole aus der Debug-Version extrahierst und mit dem Debugger lädst.



  • Also im Platform SDK gibts Windows Debugging Tools mit denen kann man das machen sofern man die pdb und quelltext hat.

    + Die Fehler (txt) die das Programm erzeugt hat.



  • ich glaube cracker lassen das programm laufen und setzen breakpoints um z.b bei der keyeingabe die werte zu ändern. evtl. könnte man das programm über einen solchen laufen lassen und beim fehler würde dies die werte anzeigen.
    ich denke mit disassembler könnte man das hinkriegen. dort stehen dann auch die dazugehörige funktion und variabeln usw.

    grs grave


Anmelden zum Antworten