Hi,
folgendes Problem:
* MSP430F1611 mC auf TMOTESKY
* TI MSP-FET430UIF
* mspgcc4 toolchain (msp430-g++ 4.4.5, msp430-gdb 7.2)
* mspdedug 0.14
Ich möchte ein (relativ complexes) C++ Programm debuggen. Es kommt
irgendwo zu Speicherüberschreibungen. Um rauszufinden wo, möchte ich
hardware watchpoints setzen an der Speicheradresse, die überschrieben
wird. Das mache ich wie folgt(im gdb):
Das führt zur Ausgabe von:
1 | Hardware watchpoint 2: *0x189c
|
wenn ich dann
eingebe bekomme ich das:
1 | Warning:
|
2 | Could not insert hardware watchpoint 1.
|
3 | Could not insert hardware breakpoints:
|
4 | You may have requested too many hardware breakpoints/watchpoints.
|
Laut TI bietet der MSP430F1611 8 Hardware Breakpoints. Ich habe genau
einen Breakpoint gesetzt! Es kann also nicht daran liegen, dass ich
zuviele Breakpoints gesetzt habe.
Kann mir bitte irgendjemand sagen was ich falsch mache? Kann der
msp430-gdb das einfach nicht? Hat vielleicht jemand eine Idee wie ich
alternativ den Verursacher der Überschreibung ermitteln kann? Ein
conditional breakpoint scheint mir keine Lösung zu sein, da ich den ja
an einer spezifischen Stelle im Code setzen müsste ... da ich aber nicht
weiß wann das Überschreiben passiert, weiß ich dann ja auch nur, dass es
irgendwann vorher passiert sein muss, aber immer noch nicht wann.
Das Debuggen funktioniert ansonsten einwandfrei. Ich Verbinde mich zum
FET mit
1 | mspdebug -j -d /dev/ttyUSB1 uif gdb
|
Ich bin Dankbar für jeden Kommentar ... jede Kleinigkeit könnte mir
weiterhelfen. Danke!