Forum: Compiler & IDEs Profilen mit GDB, AVaRICE und Dragon


von Thomas Kindler (Gast)


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..

von Johann L. (gjlayde) Benutzerseite


Lesenswert?


von Thomas Kindler (Gast)


Lesenswert?

.. hört sich erstmal gut an!

Gibt es keinen fertigen Profiler, der das GDB-Protokoll spricht?

von Thomas K. (thomask77)


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..

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.