Forum: Mikrocontroller und Digitale Elektronik AVR Studio - Breakpoints


von Neubi (Gast)


Lesenswert?

hey,


gibt es eine möglichkeit per soucecode einen breakpoint fürs avr-studio 
zu setzen : ála  "BREAK()"

grund :
habe in meinem programm zum debuggen diverse asserts eingebaut, welche 
hoffentlich nie angesprungen werden. sollten diese jedoch doch einmal 
angesprungen werden, möchte ich das der debugger/simulator stehen 
bleibt.

-> sollte wenn möglich für simulator + mkII  funktionieren

thx
neubi

von Matti (Gast)


Lesenswert?

Das habe ich bislang noch nicht gefunden. Was (als Krücke)
aber immer funktionieren sollte, wäre eine IF-Abfrage deiner
ASSERT-Bedingung und danach ein Dummy-Befehl, auf den Du einen 
Breakpoint
setzt. In etwa so:

if(assertcondition == false)
{
    dummy++;    // <-und hier einen Breakpoint setzen
}

Das ganze beeinflußt natürlich immer (wie jeder ASSERT) den 
Programmablauf
(Timing, Speicher)!

von Neubi (Gast)


Lesenswert?

hey,

bis dato habe ich den ASSERT eigentlich so gemacht wie du bereits oben 
beschrieben hast. jedoch muss ich jedesmal händisch einen breakpoint auf 
die "dummy++" zeile machen !!

-> in der debugversion würde ich gerne viele solcher asserts einbauen 
und jedesmal zig breakpoints händisch setzen ist da etwas langweilig 
?!??!


Neubi

von Matthias B. (matthias882)


Lesenswert?

Dann ruf in deinem assert eine routine auf, in der sich der dummy mit 
breakpoint befindet, und dannach ein rücksprung-befehl. AVR studio 
stoppt am breakpoint, du klickst einen step weiter und springst damit 
wieder in das betreffende assert zurück.

Programmiere eigentlich in asm, hoffe ich habs verständlich ausgedrückt.

Gruß
Matze

von fieser Rahul (auch Oskar genannt) (Gast)


Lesenswert?

in Basic gab/gibt es dazu die "onerror gosub"-Funktion...

von Neubi (Gast)


Lesenswert?

.... und trotzdem muss ich in dieser dummyfunktion bei jedem build 
händisch einen breakpoint setzen -> und genau dass möchte ich umgehen !

Neubi

von Matthias B. (matthias882)


Lesenswert?

Dann lern am besten Assembler, da bleiben die Breakpoints auch nach dem 
Build bestehen und müssen somit nur einmal gesetzt werden :-)

Trotzdem musst du mit der dummyfunktion den Brekpoint nur einmal setzen 
anstatt in jedem assert. Programmieren macht sich halt nicht ganz von 
selbst...

MfG
Matze

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.