PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : "Optimization" macht debuggen schwer



yaro
05.02.2010, 18:26
Hallo Leute,

geht es euch auch so, dass die Optimierung (vom Compiler) das Debuggen schwer macht?
Ich arbeite gerade an einem relativ großen Projekt (für AVR) und versuche einen bestimmten Teil zu debuggen, was mir aber erst richtig gelingt, wenn ich die Optimierung ausschalte.
Wenn ich das nämlich nicht tue, springt der Debugger z.T. wild von Zeile zu Zeile, wo er eig. nichts zu suchen hat.

Compiliere mit GCC, debugge mit AVRStudio 4

Gruß, Yaro

Besserwessi
05.02.2010, 20:38
Die Schwierigkeit ist bekannt. Da kann man nicht viel anders machen, als beim Debuggen ohne Optimierung arbeiten. Wenn man nicht global ohne optimierung arbeiten will oder kann (z.B. wegen delay.h), kann man den optimierer im interessanten Teil durch einstreuen künstlichen Hindernissen ausbremsen, damit man wenigstens keine große Umordnung des Codes bekommt.

So ein "Hinderniss" für den Optimierer sollte ein:
asm volatile (";");
ausreichen, bin mir da aber nicht mehr ganz sicher.

Sonst hilft es auch wenn man fürs debug ein paar variablen Volatile Kennzeichnet. Das stört den Optimierer auch.

Wenn der Optimierer doll zuschlägt hift es machmal nur sich zum debug den ASM code anzusehen, oder wenigstens die Mischform mit dem C Code.

markusj
05.02.2010, 20:40
Yepp, durch die Optimierung können Codezeilen ganz wegfallen, zusammengelegt, umsortiert oder aufgesplittet werden.
Dementsprechend wird das Debuggen etwas anspruchsvoller ...

mfG
Markus