This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: gdb hangs on diag_printf()


Well,

I logged the remote session to a file, and found this:

========================================

...
Log of download removed
...
r +$OK#9a
w +$P40=00020000#73
r +$OK#9a
w +
c c
w $Z0,20010,4#09
r +$#00
w +$m20010,4#c0
r +$3c600000#bc
w +$X20010,4:}]\x82\x10\b#59
r +$OK#9a
w +$Hc0#db
r +$OK#9a
w +$c#63
r +$T0540:00020010;01:03fbcfc0;#72
w +$X20010,4:<`\x00\x00#81
r +$OK#9a
w +$Hc0#db
r +$OK#9a
w +$s#73
r +$T0540:00020014;01:03fbcfc0;#76
w +$m20010,4#c0
r +$3c600000#bc
w +$X20010,4:}]\x82\x10\b#59
r +$OK#9a
w +$Hc0#db
r +$OK#9a
w +$c#63
r +\x00[cyg_net_init] Init: mbinit(0x00000000)\r\n[cyg_net_init] Init:
cyg_net_init_devs(0x00000000)\r\nInit device 'quicc_eth'\r\n1 10 68 3e 0
8\r\n[cyg_net_init] Init: loopattach(0x00000000)\r\n[cyg_net_init] Init:
ifinit(0x00000000)\r\nIFP: 0x0006d880, next: 0x000bdbc4\r\nIFP: 0x000bdbc4,
next: 0x00000000\r\n[cyg_net_init] Init:
domaininit(0x00000000)\r\n[cyg_net_init] Init:
cyg_net_add_domain(0x0006f0fc)\r\nNew domain internet at
0x00000000\r\n[cyg_net_init] Init: cyg_net_add_domain(0x0006e8f4)\r\nNew
domain route at 0x00000000\r\n[cyg_net_init] Init:
call_route_init(0x00000000)\r\n[cyg_net_init]
Done\r\n$O504153533A3C48414C5F78534249545F494E44455828292062617369632066756E
6374696F6E733E0A#D2
w +\x03
End of log

========================================

The last 'r' line is all one line, ~700 chars long.
It seems that the net_init diagnostic output is not being mangled.
The Logic Analyzer trace tells me that hal_if_diag_init() is being called
before cyg_net_init(),

There is an option to force initialisation messages to the serial console.
That is required with the MPC8XX_ETH package. I would guess that is breaking
this.
It seems that this is causing unmangled output to be sent out on the serial
channel, along with the correctly mangled output later on - and breaking gdb
(I think).

I have disabled the initialisation messages, but some unmangled output still
seems to be there.
I am guessing that the end of line checksum is failing, which is causing the
hang up.

I think trying to trace these function calls is causing my brain to melt :-)

Tony Butt
Software Engineer
CEA Technologies


--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]