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?
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.
:
Bearbeitet durch User
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.
Walter T. schrieb: > Clang/LLVM funktioniert super. Peter schrieb: > Falls du Linux als Betriebssystem verwendest kann ich dir valgrind sehr > empfehlen. Und das hilft dem TO bei einem AVR jetzt wie genau? p41145 schrieb: > dynamische und statische Speicherbelegung eines AVR
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.
Kaj schrieb: > Und das hilft dem TO bei einem AVR jetzt wie genau? Statischer Codeanalyse ist es egal, ob der Quelltext für einen AVR oder den PC ist. Notfalls ein paar Stubs für die Low-Level-Funktionen nachrüsten. Ist sowieso ratsam, seinen Quelltext nicht nur für eine Zielplattform zu schreiben.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.