debugging von heap corruption



  • Hallo zusammen,

    Ich habe eine etwas größere Application (übersetzt im Release Mode!), bei der teilweise Speicherverletzungen auftreten. Ich konnte jetzt den Anwendungsfall isolieren und weiß jetzt ganz genau wann dieser Fehler auftritt. Jetzt wollte ich diesen Anwendungsfall mit dem Debugger durchlaufen, blöderweise macht sich die Speicherverletzung da nicht mit einer Fehlermeldung bemerkbar. Ich bin mir aber sicher, dass auch im Debug-Modus eine Speicherverletzung auftritt, sich aber bloß nicht bemerkbar macht.
    Kennt von euch jemand eine Möglichkeit (Tool?) wie ich diese Speicherverletzungen erkennen kann?
    Für Hilfe wäre ich sehr dankbar

    mfg Tom



  • TomTom85 schrieb:

    sich aber bloß nicht bemerkbar macht.

    Debugger sollten nicht lügen, aber auch ihnen sind Grenzen gesetzt. Da ich hier keine Zeile C sehe, an der ich einhaken kann, schlage ich Dir vor, das in ein passenderes Forum schieben zu lassen. Auf Doppelpostings reagieren die hier allergisch 😉



  • War mir auch nicht ganz sicher, ob ich das unter "Werkzeugs" oder hier hinein schreibe. Zum debuggen von memory-leaks gibt es ja z.B. spezielle debug versionen von malloc/free. Desshalb hab ich es mal hier hinein geschrieben weil ich mir nicht sicher bin ob die Lösung in einem Tool oder einer C Bibliothek liegt.
    Der Fehler tritt bei gleichen bedingungen an unterschiedlichen Stellen auf, darauf schließe ich, dass irgendwann irgeneine operation den heap beschädigt hat und sich das bei der release version dann an unterschiedlichen Stellen mit einem Absturz bemerkbar macht. Ich suche jetzt eben diese Operation, die den Heap beschädigt.



  • Das Problem noch einmal anders geschildert:
    Ich habe eine größere Application, bei der zeitweilig eine Speicherverletzung gemeldet wird, die das Programm terminiert. Im Debug-Modus läuft das ganze einwandfrei. Also ich glaube, dass im Debug-Modus das gleiche Problem entsteht, nämlich dass ich irgendwo den Heap beschädige, sich das ganze jedoch bloß nicht bemerkbar macht. Meine Idee war es, mit irgend einem Tool heranzugehen, dass mir diese Speicherverletzung im Debug-Modus enthüllt.
    Hat irgendjemand eine Idee dazu? Oder kennt jemand ein gutes Tool zum Debuggen vom Heap corruption? Das was ich bisher gefunden habe ist entweder kostenpflichtig oder viel zu komplex um es schnell anzuwenden.

    Für Hilfe bin ich natürlich sehr dankbar

    mfg Tom



  • Hi TomTom,

    was Du suchst, ist ein Heapwalker. Aber die Dinger müssen zu Deiner Plattform passen. Vielleicht bringt Dich diese Linkliste weiter: http://www.nickles.de/static_cache/537613201.html.
    Wenn's das nicht bringt, mit dem Schlagwort Heapwalker weiter fleißig googeln. 😉







  • danke für die links. 🙂

    mfg Tom


Anmelden zum Antworten