Debugging mit Hilfe von Offset (Exception Address) und Registern
-
Hoi,
ich habe ein etwas größeres Programm geschrieben, welches soweit auch gut läuft, nun ist das aber recht komplex und es treten immer wieder Fehler auf.
Nun kann ich die Fehler nicht alle selbst so finden, also tun das dann letzlich auch die Anwender.
Dafür benutze ich jetzt ein Fehlerlog, welches mir bei solchen Fällen, dann eine Ausgabe, mit dem Fehlerursprung, also der Excpetion- Address, den Registern, die zuvor aufgrufenen Offsetadressen von Funktionen usw.Nun meine eigendliche Frage, mir ist recht unklar, wie ich jetzt von dort zu dem Code komme, an dem es passiert ist, sprich den C++ Code.
Was ich suche ist so ne Art Zusammenarbeit Disassambler -> Code.
Dass ich das ganze jetzt mit nem normalen Disassembler machen kann ist mir kklar und Assamblerwissen ist auch durchaus vorhanden, aber das ist doch auch nicht Sinn und Zweck....
Wäre schön Hilfe zu finden, auch ein Artikel über Taktiken, die man da Anwenden kann wären sehr Willkommen, gern auch auf Englisch.
Achso, Werkzeug ist Visual Studio 2005 (Professional), ich denke aber, dass ich Fähig bin, dass von einer anderen Version zu Übertragen
-
guckst du: http://support.microsoft.com/kb/291585
...und klick dich von da weiter durch
-
Das scheint genau das zu sein, was ich gesucht hab, dank dir

Mit symbolischen Sachen, die man da reinladen kann, hatte ich schon gewusst, stimmt, aber jetzt nicht wie man das mit so einer Sprache machen kann.
Aber so komme ich klar, thx
-
Wenn eine Exception auftritt, solltest Du einen MiniDump schreiben (lassen) (z.B. durch Dr. Watson; oder aber selber via MiniDumpWriteDump) und dann kannst Du ganz einfach die Ursprungsstelle rausfinden...
-
Ja wie gesagt, das ist schon geschehen, hab doch geschrieben, was ich erstelle.
Es ging darum, was ich mit den Daten, wie am besten machen kann
-
Hallo CLRS530,
bin derzeit dabei genau so etwas zu schreiben. Wenn du möchtest kannst dir ja mal anschauen, was möglich ist/wäre.
Allerdings sind natürlich noch nicht allen Möglichkeiten ausgereizt
Hier mal den Link:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-157905.html
-
Wenn Du schon einen MiniDump machst, dann musst Du nur auf die dmp-Datei doppel-Klicken und VS sollte dann direkt zur Ursachenstelle springen!
-
Hö? naja minidump war für mich jetzt einfach nen paar daten, aber wenn du nen richtigen minidump meinst der irgendwie nen aufbau hat, dann nein sowas hab ich nicht

@yogle Danke, guck ich mir mal an
-
Sehe gerade, dass der Download-Link gar nicht mehr funktioniert. Habs dir nochmal hoch geladen:
http://rapidshare.com/files/5089578/Exception_Filter.zip.htmlVeränderungen sind derzeit: Es gibt keinen Disassembler und keinen Memorydump mehr und er läuft nur auf Windows 2000 und höher.
Das versenden von email o.ä. ist auch noch nicht implementiert.Der Stacktrace wird dich wohl am meisten interessieren.
-
Für einen Crash-Dump siehe:
http://www.codeproject.com/debug/XCrashReportPt4.asp
http://www.codeproject.com/debug/crash_report.asp
-
Jo danke Jochen, hab jetzt erstmal, den Minidump, den doch da gepostet hattest reingebaut, gefällt mir so schonmal sehr gut

Werde mir die Tage mal deine Library angucken yogle, aber weiß noch nicht ob ich die brauche, auf jedenfall soweit Danke euch