[hellogcc] Re: Why GDB fails to connect on first attempt and always succeed on second

  • From: Yao Qi <qiyaoltc@xxxxxxxxx>
  • To: hellogcc@xxxxxxxxxxxxx
  • Date: Wed, 12 Dec 2012 10:26:59 +0800

第一次失败的:

On 12/12/2012 09:47 AM, Li Bingqiu wrote:
(gdb) target remote :1234
Remote debugging using :1234
Sending packet: $qSupported#37...Sending packet:
$qSupported#37...Sending packet: $qSupported#37...Ack

这里不对。 gdb 莫名其妙的连续发出了三个qSupported packet,一般情况 下,GDB在target remote 的时候,只用发出一个qSupported packet,参见你第二 次成功的output。

Packet received:
PacketSize=7cf;QPassSignals+;qXfer:libraries:read+;qXfer:auxv:read+;qXfer:features:read+
Packet qSupported (supported-packets) is supported
Sending packet: $qXfer:features:read:target.xml:0,7ca#46...Ack
Packet received:
PacketSize=7cf;QPassSignals+;qXfer:libraries:read+;qXfer:auxv:read+;qXfer:features:read+
Unknown remote qXfer reply:
PacketSize=7cf;QPassSignals+;qXfer:libraries:read+;qXfer:auxv:read+;qXfer:features:read+

前边的三个qSupported packet,导致后边的packet都乱了,所以这里报错了。

如果你们可以更换gdb,那就更新到最新的gdb (6.8有点太旧了),如果还有问 题,去sourcware bugzilla 开bug,到时候会有人去fix。 不过你们不能更换 gdb,那就自己fix吧。看看 remote.c:remote_query_supported 的代码。 Good luck!

Other related posts: