c: heap corruption

  • Morgen.


    Ich habe ein reines C Programm welches diverse libs verwendet und schon recht lang ist.
    Unter ganz bestimmten Bedingungen bekomme ich hin und wieder einen coredump.
    Wenn ich den coredump mit gdb/ddd analysiere, dann sehe ich das es entweder knallt weil ein pointer auf 0x65 zeigt oder das es in free() knallt wobei der pointer wenigstens in einen gültigen Bereich zeigt.
    Ich vermute das irgend ein Teil des Programmes den Heap korrupiert.
    Valgrind gibt es leider für die Aritektur nicht. Kennt jemand eine lib die mir beim suchen helfen kann?


    Ich habe testweise mal malloc und free überschrieben und ein testpattern an den Beginn geschrieben welches ich beim free wieder überprüfe. Das hilft mir aber nur wenn eine Variable die auf dem Heap davor steht über die Grenzen hinweg schreibt. Damit ich weiß welche Variable davor steht, habe ich auch noch die Datei und Zeilennummer davor geschrieben.



    Jemand eine Idee wie man das noch besser machen kann?
    Würde es valgrind für meinen arm6 geben, dann wäre dieses erste Wahl, gibt es aber leider nicht.
    Gibt es eine andere lib oder Testprogramm welches das testen kann?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!