www.mikrocontroller.net

Forum: Compiler & IDEs Debuggen in Eclipse geht nicht GDB <-> AVaRICE problem


Autor: Jan W (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Servus!

Ich habe vorgestern mein STK500/JTAGICE mkII Package bekommen und sitze 
jetzt schon zwei Tage daran das Zeug zum Laufen zu kriegen und reiße mir 
schon büscheweise das Haar aus. Programmieren geht (zwar komisch aber 
immerhin), debuggen nicht.

Ich bin mir nicht sicher woran das liegt. Was ich bis jetzt gemacht 
habe:
- eclipse mit CDT installiert
- winavr installiert
- avr eclipse plugin installiert
- LibUSB32 installiert
- AVaRICE in eclipse als tool eingebunden -> Startet jetzt
- Debuger in eclipse konfiguriert auf gdbserver, localhost 4242

So jetzt fängt das Problem an. Das debuggen lieft so erst mal gar nicht. 
Ich hab dann mal avarice gestartet und per kommandozeile den GDB 
benutzt. Konnte konnecten, hat mir programmcode mit list angezeigt, 
konnte breakpoints setzten, programmierte LEDs auf dem Target 
leuchteten, das lief also.

So dann hab ich gesehen das, in der console von eclipse wenn ich debugge 
irgendwelche komischen kommandos auf gerufen werden. Ich hab also 
angenommen, dass es das .dgbinit file ist das ich NIRGENDWO auf meiner 
festplatte finden konnte.

Ich habe dann ein eingenes gdbinit file geschrieben:
target remote localhost:4242
load
break main
continue

Dann ist er auch weiter gekommen, ich hab in der Console gesehen, dass 
AVarice mit GDB spricht, offensichtlich das Programm downgeloaded hat 
und dann bricht eclipse irgendwann mit folgender Fehlermeldung ab:
Target selection failed.
Remote communication error: Bad file descriptor.
Remote communication error: Bad file descriptor.
Remote communication error: Bad file descriptor.

Was soll das? Ich hab mal den AVaRICE log als datei angehängt, falls 
jemand damit was anfangen kann.

So, dann hab ich mal AVRStudio ausprobiert, das stürzt mit einer Visual 
C++ runtime error meldung ab solbald ich debuggen will. Programmieren 
geht hier.


Ach so und noch eine letzte Sache, wenn ich über eclipse den Flash 
programmiere, kommt jedesmal diese Ding-Dong ...Dong-Ding Usb 
gerärtegeräusch von windows. Das nervt...ist das normal?


Schon mal VIELEN DANK im Voraus!!!

Gruß Jan

Autor: Ha Jo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jan,

Du brauchst kein gdbinit File. Wenn Du GDBSEREVR wählst, dann
kannst Du diese Einstelleungen alle direkt dort machen. Ich glaube
unter "Connection". Bin diese Woche nicht zu Hause und kann es deshalb
nicht genau sagen.

Es reicht localhost und Port 4242 oder den, mit dem Du AVaRICE
startest.

Beim compilieren MUßT Du als Option -gstabs einstellen (nicht 
-gdwarf-2!!!).
Der AVR-GDB versteht kein dwarf-2.

Als Debugger mußt Du AVR-GDB einstellen, nicht GDB.

Soviel erstmal aus meiner Erinnerung. Bei mir läuft das
Debuggen ganz gut. Wenn ich wieder zu Hause bin (Sonntag), dann kann ich 
Dir
mehr sagen.

Gruß Joachim

Autor: Jan W (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Hilfe, aaaalso...

...ich hab jetzt mal das gdbinit rausgenommen.
Dann -gstabs beim Compiler eingestellt (vorher war keins von den 
genannten agrumenten eingestellt, also weder gstabs noch dwarf).
Als Debugger mußt Du AVR-GDB einstellen, nicht GDB.

Ich nehme mal an, du meist damit die exe die aufgerufen wird...? Das 
hatte ich jedenfalls schon. Es gibt im Ordner ja auch kein "nur"-gdb.

Jedenfalls rattert der dann wieder los und jetzt krieg ich folgende 
Meldung:
Download complete.
Waiting for connection on port 4242.
Connection opened by host 127.0.0.1, port 1147.
gdb communications failure: Connection reset by peer
gdb communications failure: Connection reset by peer

???

Was ich mich frage...wieso öffnet der zusätzlich noch port 1147? Ist das 
normal so?

Außerdem, wo steht, was eclipse tut, wenn ich auf debug klicke. Der tut 
und macht und ich weiß gar nicht wat der da macht.

Ich meine, wie geasgt, wenn ich das per hand mach geht es ja, deswegen 
nehme ich mal an, dass der was flasches sendet.

Ach, und das ELF-fil ist OK? Oder muss ich da was anderes einstellen?

Danke und Gruß Jan

Autor: Ha Jo (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jan,

ich habe Dir ein paar Screenshots angehangen. Dort siehst Du meine
Einstellungen. Den AVaRICE kannst Du auch in einem Konsolenfenster
starten. Z.B. so (ich nutze gerade einen ATMEGA32):

C:\Programme\WinAVR-20070525\bin\avarice.exe -2 -P atmega32 --jtag 
dev/com3:4242

Hier nutze ich den Debugger über COM3 an einem Windows-PC.

Er meldet sich dann so:
----------------------------------------------
AVaRICE version 2.6, May 15 2007 17:07:24

Defaulting JTAG bitrate to 1 MHz. Make sure that the target
frequency is at least 4 MHz or you will likely encounter failures
controlling the target.

JTAG config starting.
Found a device: JTAGICEmkII
Serial number:  00:b0:00:00:27:fc
Reported JTAG device ID: 0x9502
Configured for device ID: 0x9502 atmega32 -- Matched with atmega32
JTAG config complete.
Preparing the target device for On Chip Debugging.

Disabling lock bits:
  LockBits -> 0xff

Enabling on-chip debugging:
  Extended Fuse byte -> 0x3f
      High Fuse byte -> 0x1b
       Low Fuse byte -> 0x3f
Waiting for connection on port 4242.
----------------------------------------------

Wichtig ist die Portnr. 4242. Du kannst auch eine andere nehmen,
die mußt Du dann auch in Eclipse bei den DEBUG Optionen als Port 
angeben.

Zu den Screenshots, hier wird USB zum Debugger genutzt, nicht COM3 wie 
oben in meinem Beispiel für die Konsole angegeben.
1) Tool AVaRICE Debugging USB.gif
Ein Tool in Eclipse zum starten von AVaRICE als Debugger über USB.

2) Tool AVaRICE Programming USB.gif
Ein Tool in Eclipse zum starten von AVaRICE und programmieren des
AVRs mit dem Hexfile. Wichtig hier zur Info evtl. nur die Parameter 
unter "Arguments"

3) Debugger with AVaRICE1.gif
4) Debugger with AVaRICE2.gif
AVaRICE als Debugger in Eclipse einrichten.

Jetzt erst den AVaRICE startest entweder über ein
Konsolenfenster oder als Tool in Eclipse. Jetzt sollte dieser auf
eine Verbindung warten (Zielhardware auch einschalten!).

Dann in Eclipse die Combobox rechts neben dem Debug-Button anklicken
und dann auf "Debug..." klicken. In dem neuen Fenster auf den Button
"Debug" klicken und schon sollte es losgehen.
Du kannst auch statt auf "Debug..." auf "Organize Favorites..." klicken. 
Dort kannst Du Dir Deine Application einrichen. Sie erscheint dann 
zusätzlich im Menu nachdem Du die Combobox rechts neben dem Debug-Button
im Eclipse-Hauptmenu angeklickt hast.

Läuft bei mir immer problemlos.

Gruß Joachim

Autor: Gilles R. (roodemol)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

dieser Beitrag ist schon etwas älter aber ich habe ein ähnliches 
Problem. Installiert habe ich Eclipse 3.4 mit dem AVR Eclipse Plugin 
2.2. Manuelles debuggen in einer Shell funktioniert ohne Problem wenn 
ich aber die Einstellungen wie in den Bilden in Eclipse vornehme, 
passiert folgendes wenn ich debuggen will:
avarice --erase --program --file debug-test.elf  --jtag /dev/avrjtag :4242
AVaRICE version 2.7, Nov 20 2007 04:07:12

Defaulting JTAG bitrate to 1 MHz. Make sure that the target
frequency is at least 4 MHz or you will likely encounter failures
controlling the target.

JTAG config starting.
Hardware Version: 0xc3
Software Version: 0x80
Reported JTAG device ID: 0x9502
Configured for device ID: 0x9502 atmega32
JTAG config complete.
Erasing program memory.
Erase complete.
Preparing the target device for On Chip Debugging.

Disabling lock bits:
  LockBits -> 0xff

Enabling on-chip debugging:
  Extended Fuse byte -> 0xef
      High Fuse byte -> 0x19
       Low Fuse byte -> 0xef
Downloading FLASH image to target..................

Download complete.
Waiting for connection on port 4242.
Connection opened by host 127.0.0.1, port 52742.
gdb exited.


Woran kann das liegen?

MFG, Gilles

Autor: 900ss D. (900ss)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du es evtl. schon gefunden? Ansonsten müßtest Du mal Jörg Wunsch 
antriggern, falls er hier nicht mitließt, einen neuen Thread aufmachen. 
Den sieht er evtl.. Oder Du schreibst Ihm eine PM.
Ich selbst habe keine Erklärung. Läuft Dein Programm denn an? Oder 
startest Du nur über "External Tools" das AVaRICE?
Hmmm... bei mir klappt das alles gut.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin da auch ratlos.  Offensichtlich baut ja eine GDB-Instanz eine
Verbindung auf ("target remote :4242"), aber schließt sich anschließend
wieder ("detach").  Frag mal im Thread über das Eclipse-Plugin nach
bzw. bei dessen Autor an, wie man die GDB-Kommandos im Plugin irgendwie
verfolgen kann.

Autor: 900ss D. (900ss)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also es sieht so aus, ja eine GDB Instanz verbindet sich und hängt sich 
dann scheinbar wieder ab. Als wenn das Testprogramm beendet wird.
Zur Info an Gilles: AVaRICE wird wieder beendet, wenn sich GDB verbunden 
hat und wieder beendet ist.
Demnach wird AVaRICE UND der GDB nacheinander gestartet und der GDB 
dann gleich wieder beendet.
Eigentlich ist das unüblich. Bei mir wird über "External Tools" nur der 
AVaRICE gestartet. Die eigentliche DEBUG-Session in Eclipse starte ich 
extra. Darum steht bei mir nach starten von AVaRICE als letzte Zeile:
Waiting for connection on port 4242.

Vielleicht hilft das ja weiter. Irgendwie scheint mir, als wenn mit 
einem "Klick" AVaRICE und der GDB gestartet werden. Evtl. gibt da 
Eclipse-Konsolenfenster noch mehr Auskunft.

Autor: Gilles R. (roodemol)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, AVaRICE starte ich in einer Shell ganz normal mit den Befehl:
avarice --erase --program --file debug-test.elf  --jtag /dev/avrjtag :4242

als letzte Zeile erscheint bei mir dann auch:
Waiting for connection on port 4242.

Der Rest erscheint erst wenn ich auf das Debug Icon in Eclipse drücke.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gilles R. wrote:

> Der Rest erscheint erst wenn ich auf das Debug Icon in Eclipse drücke.

Ja, und genau das ist wichtig zu erfahren, was hier genau im
Hintergrund passiert.  Es muss irgendwie das Zusammenspiel von
Eclipse mit dem GDB sein, was dem GDB zwar aufträgt, sich mit
AVaRICE zu verbinden, aber gleich danach die Verbindung wieder
zu beenden.

Autor: Gilles R. (roodemol)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe das ganze jetzt noch mal versucht, noch immer ohne erfolg. 
Allerdings habe ich mir die Ausgabe in der Konsole anzeigen lassen:
1-gdb-set confirm off
1^done
(gdb) 
2-gdb-set width 0
2^done
(gdb) 
3-gdb-set height 0
3^done
(gdb) 
4-interpreter-exec console echo
4^done
(gdb) 
5-gdb-show prompt
5^done,value="(gdb) "
(gdb) 
6-gdb-set auto-solib-add on
6^done
(gdb) 
7-gdb-set stop-on-solib-events 0
7^done
(gdb) 
8-gdb-set stop-on-solib-events 1
8^done
(gdb) 
9-target-select remote localhost:4242
9^connected,thread-id="0",frame={addr="0x00000000",func="__vectors",args=[]}
(gdb) 
10-environment-cd /home/gilles/workspace/test-prog
10^done
(gdb) 
11-environment-directory /home/gilles/workspace/test-prog /home/gilles/workspace/test-prog/.settings /home/gilles/workspace/test-prog/Release /home/gilles/workspace/test-prog/Release/src /home/gilles/workspace/test-prog/include /home/gilles/workspace/test-prog/src
11^done,source-path="/home/gilles/workspace/test-prog:/home/gilles/workspace/test-prog/.settings:/home/gilles/workspace/test-prog/Release:/home/gilles/workspace/test-prog/Release/src:/home/gilles/workspace/test-prog/include:/home/gilles/workspace/test-prog/src:$cdir:$cwd"
(gdb) 
12 info threads
&"info threads\n"
&"warning: RMT ERROR : failed to get remote thread list.\n"
12^done
(gdb) 
13-data-list-register-names
13^done,register-names=["r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","r10","r11","r12","r13","r14","r15","r16","r17","r18","r19","r20","r21","r22","r23","r24","r25","r26","r27","r28","r29","r30","r31","SREG","SP","PC"]
(gdb) 
14-break-insert /home/gilles/workspace/test-prog/src/SineWaveGenerator.c:25
14^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x000000fc",func="main",file="../src/SineWaveGenerator.c",line="25",times="0"}
(gdb) 
15-break-disable 1
15^done
(gdb) 
16-break-insert -t main
16^done,bkpt={number="2",type="breakpoint",disp="del",enabled="y",addr="0x00000104",func="main",file="../src/SineWaveGenerator.c",line="39",times="0"}
(gdb) 
17-stack-info-depth
17^done,depth="1"
(gdb) 
18-stack-list-frames 0 1
18^done,stack=[frame={level="0",addr="0x00000000",func="__vectors"}]
(gdb) 
19-exec-continue
19^running
(gdb) 
19*stopped,thread-id="0",frame={addr="0x00000104",func="main",args=[],file="../src/SineWaveGenerator.c",fullname="/home/gilles/workspace/test-prog/src/SineWaveGenerator.c",line="39"}
(gdb) 
20 info threads
&"info threads\n"
&"warning: RMT ERROR : failed to get remote thread list.\n"
20^done
(gdb) 
21-stack-info-depth
21^done,depth="1"
(gdb) 
22-stack-list-frames 0 1
22^done,stack=[frame={level="0",addr="0x00000104",func="main",file="../src/SineWaveGenerator.c",fullname="/home/gilles/workspace/test-prog/src/SineWaveGenerator.c",line="39"}]
(gdb) 
23-data-list-changed-registers
23^done,changed-registers=["10","12","14","18","20","22","23","24","25","26","28","29","30","31","32","33","34"]
(gdb) 
24 info sharedlibrary
&"info sharedlibrary\n"
25-gdb-exit


Mit dieser Ausgabe kann mir vielleicht jemand weiterhelfen und mir sagen 
warum AVaRICE beendet wird.

Gilles

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eventuell fragst du ja mal beim Autor des Eclipse-Plugins an.  Ganz
kann ich dem hier nicht folgen, da ich es nicht 1:1 auf die GDB-
Kommunikation abgebildet bekomme.

Was mich stutzig macht ist das Ende:
24 info sharedlibrary
&"info sharedlibrary\n"
25-gdb-exit

OK, "info sharedlibrary" gibt beim AVR natürlich nichs aus, oder
genauer gesagt, den Satz:

No shared libraries loaded at this time.

Warum danach ein gdb-exit steht, habe ich keine Idee.  Offenbar
war es ja an dieser Stelle nicht deine Absicht, den GDB zu beenden.

Autor: Thomas Holland (innot)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Gilles,

ich bin der Autor des Plugins, aber leider kann ich Dir direkt nicht 
weiterhelfen. Ich habe selbst noch keine JTAG Hardware, so dass ich mich 
bisher noch nicht um das Debuggen gekümmert habe.

Das wird sich mit der nächsten Version des Plugins (2.4) ändern, da ich 
mir für die Version das Thema Debugging vorgenommen habe. Aber vorher 
muss erstmal 2.3 fertig werden (die Beta ist ja schon raus).

Aber wenn ich es richtig gesehen habe gibt es Plugins speziell für das 
Debuggen über JTAG. Vielleicht helfen Dir die Plugins weiter:

1. http://www.zylin.com/embeddedcdt.html

2. Das offizielle CDT JTAG plugin auf der CDT Update-site unter "CDT 
Optional Features".
Für Eclipse 3.3/Europa: 
http://download.eclipse.org/tools/cdt/releases/europa/
Für Eclipse 3.4/Ganymede: 
http://download.eclipse.org/tools/cdt/releases/ganymede/

Letzteres ist, wenn ich es recht verstanden habe, eine Derivat des Zylin 
Plugins das etwas besser integriert ist, aber dafür nicht auf dem 
neusten Stand ist.

900ss: ich kann mich nicht mehr so genau erinnern. Benutzt Du nicht das 
Zylin Plugin?

Liebe Grüße,

Thomas

Autor: 900ss D. (900ss)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas Holland wrote:

>
> 900ss: ich kann mich nicht mehr so genau erinnern. Benutzt Du nicht das
> Zylin Plugin?

Nein, ich nutze Eclipse mit dem AVR-GDB und Avarice. Klappt problemlos.

@Gilles: Wie hast Du denn die Ausgabe in das Konsolenfenster gezaubert? 
Dann würde ich es auch bei mir mal machen und evtl. sieht man dann am 
Unterschied, wo es klemmt.

Autor: Gilles R. (roodemol)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

um an die Ausgabe zu kommen muss man folgendes machen, zuerst 
"shift+alt+q" drücken, gefolgt von "c" oder ganz einfach im Window Menü 
unter Show View aktivieren.

Unter "Debug Configurations" muss man dann noch "Verbose console mode" 
aktivieren.

Bei mir steht dann im Debug Fenster:
 <terminated> sinewave-generator.elf [C/C++ Local Application]
 wenn ich das aufklappe und auf
<terminated, exit value: -1>avr-gdb (9/22/08 7:43 PM) 
 klicke kriege ich die Ausgabe.


Gilles

Autor: 900ss D. (900ss)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gilles R. wrote:
> um an die Ausgabe zu kommen muss man folgendes machen, zuerst
> "shift+alt+q" drücken, gefolgt von "c" oder ganz einfach im Window Menü
> unter Show View aktivieren.
Wie man an die Console kommt war mir schon klar, aber wie man den 
"Plapper-Modus" aktiviert, dass hatte ich verdrängt (verbose...).
Bei mir sieht es dann sehr ähnlich aus, bis auf das Ende. Da wird bei 
mir der GDB nicht beendet. Hast Du es schon mal mit einem ganz kleinen 
Testprogramm versucht? Ich werd auch nicht schlau draus.

85-gdb-set confirm off
85^done
(gdb) 
86-gdb-set width 0
86^done
(gdb) 
87-gdb-set height 0
87^done
(gdb) 
88-interpreter-exec console echo
88^done
(gdb) 
89-gdb-show prompt
89^done,value="(gdb) "
(gdb) 
90-gdb-set auto-solib-add on
90^done
(gdb) 
91-gdb-set stop-on-solib-events 0
91^done
(gdb) 
92-gdb-set stop-on-solib-events 1
92^done
(gdb) 
93-target-select remote localhost:4242
93^connected,thread-id="0",frame={addr="0x00000000",func="__vectors",args=[]}
(gdb) 
94-environment-cd D:\Daten\D\Projekte\EclipseWS\LEDUhr
94^done
(gdb) 
95-environment-directory D:/Daten/D/Projekte/EclipseWS/LEDUhr D:/Daten/D/Projekte/EclipseWS/LEDUhr/.settings D:/Daten/D/Projekte/EclipseWS/LEDUhr/Debug D:/Daten/D/Projekte/EclipseWS/LEDUhr/Release
95^done,source-path="D:/Daten/D/Projekte/EclipseWS/LEDUhr;D:/Daten/D/Projekte/EclipseWS/LEDUhr/.settings;D:/Daten/D/Projekte/EclipseWS/LEDUhr/Debug;D:/Daten/D/Projekte/EclipseWS/LEDUhr/Release;$cdir;$cwd"
(gdb) 
96 info threads
&"info threads\n"
&"warning: RMT ERROR : failed to get remote thread list.\n"
96^done
(gdb) 
97-data-list-register-names
97^done,register-names=["r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","r10","r11","r12","r13","r14","r15","r16","r17","r18","r19","r20","r21","r22","r23","r24","r25","r26","r27","r28","r29","r30","r31","SREG","SP","PC"]
(gdb) 
98-break-insert -t main
98^done,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x00000fba",func="main",file="../main.c",fullname="D:/Daten/D/Projekte/EclipseWS/LEDUhr/.settings/../main.c",line="98",times="0"}
(gdb) 
99-stack-info-depth
99^done,depth="1"
(gdb) 
100-stack-list-frames 0 1
100^done,stack=[frame={level="0",addr="0x00000000",func="__vectors"}]
(gdb) 
101-exec-continue
101^running
(gdb) 
101*stopped,thread-id="0",frame={addr="0x00000fba",func="main",args=[],file="../main.c",fullname="D:/Daten/D/Projekte/EclipseWS/LEDUhr/.settings/../main.c",line="98"}
(gdb) 
102 info threads
&"info threads\n"
&"warning: RMT ERROR : failed to get remote thread list.\n"
102^done
(gdb) 
103-stack-info-depth
103^done,depth="1"
(gdb) 
104-stack-list-frames 0 1
104^done,stack=[frame={level="0",addr="0x00000fba",func="main",file="../main.c",fullname="D:/Daten/D/Projekte/EclipseWS/LEDUhr/.settings/../main.c",line="98"}]
(gdb) 
105-data-list-changed-registers
105^done,changed-registers=["0","2","4","7","16","17","20","21","22","26","27","28","29","30","31","32","33","34"]
(gdb) 
106 info sharedlibrary
&"info sharedlibrary\n"
~"No shared libraries loaded at this time.\n"
106^done
(gdb) 

Autor: Gilles R. (roodemol)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich habe jetzt noch etwas herumprobiert und das Problem ein wenig 
eingekreist:

Ich habe folgendes gemacht:
avarice --erase --program --file sinewave-generator.elf  --jtag /dev/avrjtag :4242

AVaRICE version 2.7, Nov 20 2007 04:07:12

Defaulting JTAG bitrate to 1 MHz. Make sure that the target
frequency is at least 4 MHz or you will likely encounter failures
controlling the target.

JTAG config starting.
Hardware Version: 0xc3
Software Version: 0x80
Reported JTAG device ID: 0x9502
Configured for device ID: 0x9502 atmega32
JTAG config complete.
Erasing program memory.
Erase complete.
Preparing the target device for On Chip Debugging.

Disabling lock bits:
  LockBits -> 0xff

Enabling on-chip debugging:
  Extended Fuse byte -> 0xef
      High Fuse byte -> 0x19
       Low Fuse byte -> 0xef
Downloading FLASH image to target..................

Download complete.
Waiting for connection on port 4242.

danach habe ich in einem zweiten Terminal den gdb gestartet:
avr-gdb sinewave-generator.elf
GNU gdb 6.4
Copyright 2005 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "--host=x86_64-linux-gnu --target=avr"...
(gdb) target remote localhost:4242
Remote debugging using localhost:4242
Connection opened by host 127.0.0.1, port 36588.
0x00000000 in __vectors ()
(gdb) list
30
31
32          /*
33           *  Initialize UART library, pass baudrate and AVR cpu clock
34           *  with the macro
35           *  UART_BAUD_SELECT() (normal speed mode )
36           *  or
37           *  UART_BAUD_SELECT_DOUBLE_SPEED() ( double speed mode)
38           */
39          uart_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) );
(gdb)

Soweit klappt noch alles einwandfrei. Sobald ich aber info sharedlibrary 
eingebe passiert follgendes:
(gdb) info sharedlibrary
../../src/gdb/solib.c:707: internal-error: TARGET_PTR_BIT returned unknown size 16
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n)

Daraus schliesse ich dass der Fehler selbst nicht beim AVR Plugin liegt 
sondern irgendwo beim gdb.

Hat jemand eine Idee was das sein kann?

MFG, Gilles

Autor: 900ss D. (900ss)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast irgendeine alte Version des GDBs installiert. Welche WinAVR 
Version hast Du installiert? Meine ist WinAVR_20080512.
Merkwürdigerweise hast Du aber einen aktuelleren AVaRICE.

Hier die Ausgabe von meinem AVR-GDB:
C:\Bat>avr-gdb --version
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "--host=i686-pc-mingw32 --target=avr".

Autor: Gilles R. (roodemol)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe die letzten Pakete installiert die bei meiner Distribution 
dabei sind.

als Ausgabe auf avr-gdb --version bekomme ich:
GNU gdb 6.4
Copyright 2005 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "--host=x86_64-linux-gnu --target=avr".

Auf diesem Rechner habe ich KUbuntu 8.04 installiert, vielleicht kennt 
ja jemand eine Quelle für aktuellere Pakete.

MFG, Gilles

Autor: zOttel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier, nimm' das Script von Bingo600 
(http://www.avrfreaks.net/index.php?name=PNphpBB2&f...) 
und alles wird gut ;)

Zur Info: damit wird die Toolchain aus den jeweils aktuellen Sourcen 
erzeugt

Autor: Gilles R. (roodemol)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe mit dem Rat von zOttel und etwas Hilfe von Bingo600 das ganze jetzt 
am laufen.

MFG, Gilles

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab mal eine ganz andere Frage. Ich habe das Debuggen mit Hilfe der 
Konsole zum laufen gebracht. Gibt es eigentlich auch die Möglichkeit in 
Eclipse mit der ganz normalen Debugansicht zu arbeiten, wie zum Beispiel 
beim AVR Studio die Debugansicht

Autor: 900ss D. (900ss)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

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.