Profilen mit GDB, AVaRICE und Dragon

Gast #1032717
Lesenswert?
• ▲
▼
Hallo!

  Ich hab' hier eine Anwendung, die meinen mega168 zu fast 100% 
auslastet. An allen offensichtlichen Stellen hab' ich schon optimiert, 
trotzdem wüsste ich gerne, wo noch Hot-Spots liegen.

Dafür wäre ein Profiler toll. Am besten stochastisch, ohne den Code 
instrumentieren zu müssen.

Im Prinzip funktioniert das auch schon -- Per DebugWire/Dragon / 
AVaRICE/GDB kann ich das Programm mit "cont" starten, und mit "CTRL-C" 
anhalten.  Der Debugger gibt mir den aktuellen PC zurück, mit addr2line 
könnte ich im Sourcecode nachgucken, wo's ihn erwischt hat.

Für 'ne Sinnvolle Aussage bräuchte man z.B. ein Sample pro ms, und davon 
100000 Stück.

Wie kann ich das cont/ctrl-c automatisieren?! In der GDB-man page hab' 
ich für diese Anwendung leider nichts gefunden..
Lesenswert?
• ▲
▼
Thomas Kindler wrote:
> .. hört sich erstmal gut an!

.. Aargh. Aber Ich bekomm's mit damit einfach nicht hin.

Das Problem ist, dass avr-gdb zum stoppen des Programms ein CTRL-C 
benötigt. Auf der Console klappt das einwandfrei -- es wird nur das 
Programm auf dem AVR gestoppt.

Wenn ich CTRL-C per expect sende, beendet sich aber der komplette GDB. 
Ich bekomm's einfach nicht hin, dass er sich unter expect genauso 
verhält, wie auf der Console.

(btw.: Ich verwende die WinAVR-Toolchain mit cygwin-expect)

Auch mit Perl's Devel::GDB(::LowLevel) passiert das gleiche, wenn man 
gdb->Interrupt() aufruft.

Mittlerweile glaub' ich an einen Bug in der  Windows-Portierung.. evtl. 
probier' ich's unter Linux mal aus.

Ansonsten werd' ich wohl ein Programm schreiben müssen, dass AVaRICE 
direkt per GDB-Remote-Protokoll ansteuert..

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.