mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Studio - Breakpoints


Autor: Neubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matti (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)!

Autor: Neubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias Becher (matthias882)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: fieser Rahul (auch Oskar genannt) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
in Basic gab/gibt es dazu die "onerror gosub"-Funktion...

Autor: Neubi (Gast)
Datum:

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

Neubi

Autor: Matthias Becher (matthias882)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.