Suche Codeanalyse-Tool für dyn. Speicher

Gast #5293235
Lesenswert?

Ich hatte mal vor ein paar Jahren ein Codeanalyse Tool, mitdem ich die 
dynamische und statische Speicherbelegung eines AVR checken konnte. Es 
warnte auch vor Rekursionen die potentiell die potentiell ein Overflow 
erzeugen können.

Leider habe ich den Namen vergessen. Kann mir jemand ein solches Tool 
empfehlen, welches nach Möglichkeit frei für den privaten Gebrauch ist?

Welche Tools verwendet ihr so für die Codeanalyse?
#5297930
Lesenswert?

p41145 schrieb:
> Welche Tools verwendet ihr so für die Codeanalyse?

Clang/LLVM funktioniert super. Unter Windows ist (war?) es allerdings 
ein Krampf zu installieren (u.A. wegen Abhängigkeiten zu einer 
bestimmten Perl-Version, wenn ich mich recht erinnere). Für mich reicht 
es als alleiniger Grund, eine virtuelle Entwicklungsmaschine in Debian 
bereit zu halten.
Gast #5346613
Lesenswert?

Falls du Linux als Betriebssystem verwendest kann ich dir valgrind sehr 
empfehlen. Es läuft zur Laufzeit und macht sehr gute Angaben über 
Speicherfehler.

Ansonsten kannst du noch tricksen: malloc() und free() per Define auf 
eigene Funktionen umbiegen. In den Funktionen mitzählen, wie viel RAM 
gerade belegt wird und wieviel noch frei ist. Danach die originalen 
Funktionen malloc() und free() aufrufen. Außerdem dich höchste Adresse 
des reservierten Speicher merken und mit dem Stackpointer vergleichen. 
Im Fehlerfall Breakpoint und den Stacktrace anschauen.
Gast #5346701
Lesenswert?

p41145 schrieb:
> Ich hatte mal vor ein paar Jahren ein Codeanalyse Tool, mitdem ich
> die dynamische und statische Speicherbelegung eines AVR checken
> konnte.

Ich verwende embedded nur statische Speicherbelegung, das löst einen 
Haufen Probleme von selber.

> warnte auch vor Rekursionen die potentiell die potentiell ein Overflow
> erzeugen können.

Rekursion vermeidet man ebenfalls. Da, wo es nicht anders geht, muß man 
eben eine manuelle Stack-Analse machen. GCC mit -fstack-usage hilft 
hierbei.

> Welche Tools verwendet ihr so für die Codeanalyse?

CppCheck ist super und ist zumindest in der Windows-Version genial 
benutzerfreundlich.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren