Forum: Mikrocontroller und Digitale Elektronik Data Abort: Heap Overflow


von Bernd S. (mms)


Lesenswert?

hallo,

wenn man häufig aber nicht bei jedem durchlauf seines programms einen 
data abort erhält, der sich auf eine Adresse im Heap bezieht (meist in 
der Mitte des internen SRAMs ); deutet dies auf einen Heap Overflow hin?

z.b. befindet sich der Stack Ptr bei 0x00201208 und darüber geht ja der 
Heap wachsend zum Ende des SRAMs los bis 0x002FFFFF - die Fehler liegen 
meistens bei ca. 0x0026563 oder 0x0028945 -> also nicht direkt am Ende 
vom Heap.

Oder kann es sein, dass irgendein Pointer auf diesen Bereich verweist? 
z.b. von einer Funktion oder ähnlichem? Wenn ich mir meine Funktionen 
und Variablen im Watch Window anschaue, sind die Speicheradressen alle 
richtig (nämlich nicht im Heap sondern im Flash bzw. RAM).

In meinem Programm verwende ich retarget.c für eine printf() 
Implementierung. Wieviel Speicher nimmt so ein printf-Aufruf ungefähr in 
Anspruch, kann man sich das irgendwie ausgeben lassen? aber nicht mit 
sizeof(printf("hallo Welt")); oder?

Bernd

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.