Das Titelbild wurde erstellt von Cryteria, CC BY 3.0, Link

Gdb, der GNU-Debugger, ist wahrscheinlich der am häufigsten verwendete Open-Source-Debugger für eingebettete Systeme. Die AVR-Version von GDB auf dem Mac ist leider nicht sehr kooperativ. Wenn man versucht, eine ELF-Datei zu lesen, erhält man die folgende lustige Mitteilung (die an HAL9000 erinnert):

I’m sorry, Dave, I can’t do that. Symbol format `elf32-avr’ unknown.

Aber mit der richtigen Homebrew-Formel kann man avr-gdb einige neue Tricks beibringen …

EDIT: Das Problem wurde von den homebrew-Entwicklern gelöst.

Die avr-gdb-Version, auf die ich mich beziehe, ist diejenige, die man mit Homebrew installieren kann. Es gibt auch andere Versionen, z.B. ältere Arduino-Versionen enthielten avr-gdb. Und auch PlatformIO enthält eine Version von avr-gdb. Die PlatformIO-Version von avr-gdb kann ELF-Dateien lesen, behauptet jedoch, dass die Python-Unterstützung begrenzt ist.

Das Problem mit der aktuellen „offiziellen“ Homebrew-Version scheint zu sein, dass der Compiler, der zur Erstellung der Binärdatei verwendet wird, der Clang-Compiler ist, der Standard-macOS-Compiler. Der ist wohl an einigen Stellen weniger fehlerverzeihend als gcc. Anscheinend führte eine implizite Deklaration von strncmp zu dem Problem. Das Einfügen von string.h in elf-bfd.h löst das Problem, wie bei Sourceware Bugzilla berichtet wird. Leider hat es der Patch nicht in die neueste Version 10.2 von GDB geschafft. Man kann jedoch leicht eine eigene Homebrew-Formel kreieren. Mit

    brew-update
    brew install felias-fogg/arduino/avr-gdb

erhält man (nach einiger Wartezeit) eine funktionierende Version von avr-gdb (sogar Version 10.2 statt 10.1!).

EDIT: Mittlerweile kann man jetzt wieder die gewöhnliche Homebrew-Formel verwenden.

Views: 3