[Top] [All Lists]

Problems debugging multithreaded program wirh gdbserver via serial port

To: <>
Subject: Problems debugging multithreaded program wirh gdbserver via serial port
From: "Yoni Rabinovitch" <>
Date: Mon, 8 Nov 2004 16:11:32 +0200
Original-recipient: rfc822;
Thread-index: AcTFnNkjnX55Q8ekTa6oyaL41Xlfeg==
Thread-topic: Problems debugging multithreaded program wirh gdbserver via se rial port


  I am trying to debug a multithreaded program running on an embedded MIPS 5Kc using gdb and gdbserver, connected via

a serial port.

  My environment is as follows:

  MIPS kernel based on 2.4.18

  gdb :  6.2.1, configured with --host=i686-pc-linux-gnu --target=mips-hardhat-linux --disable-sim --disable-tcl --enable-threads --enable-shared

  gdbserver: 6.2.1, configured with --target=mips-linux --enable-threads --enable-shared

  gcc : 3.2.3,     }

  binutils : 2.13  }   Built using crosstool

  glibc: 2.2.5      }

  My problems are as follows:

1)  If I try to run the program from gdbserver (i.e. gdbserver /dev/ttyS0 wlsd), I get "readchar: Input/output error" messages,

and nothing works. See attached file gdb_fail.

What is going on here ?

2) If I first run the program, and then attach gdbserver to it (i.e. gdbserver /dev/ttyS0 --attach 80), I can debug it.

However, debugging is amazingly slow !!

For example, it can take 10 minutes for the "backtrace" (bt) command to complete !!!

Also, I get messages saying "Cannot access memory at address 0x2c" whnever I try to look at the stack.

See attached file gdb_trace.

Why is it going so slow ?

What is the cause of the "Cannot access memory at address 0x2c"  messages ?

3) If I repeat the scenario described in 2), but with "set debug remote 1", it seems to work somewhat faster

(e.g. bt takes about 1 minute to complete).

I am seeing alot of "Packet instead of Ack, ignoring it" messages.

See attached file gdb_trace_debug.

What do these messages mean ?

  In general, what to I need to do to get gdb <-> gdbserver debugging working properly over a serial port?

  Thanks in advance for any tips !!


<<gdb_fail>> <<gdb_trace_debug>> <<gdb_trace>>

Attachment: gdb_fail
Description: gdb_fail

Attachment: gdb_trace_debug
Description: gdb_trace_debug

Attachment: gdb_trace
Description: gdb_trace

<Prev in Thread] Current Thread [Next in Thread>