From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11508 invoked by alias); 16 May 2003 19:15:45 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 11468 invoked from network); 16 May 2003 19:15:43 -0000 Received: from unknown (HELO TheWorld.com) (199.172.62.103) by sources.redhat.com with SMTP; 16 May 2003 19:15:43 -0000 Received: from shell.TheWorld.com (root@shell01.TheWorld.com [199.172.62.241]) by TheWorld.com (8.12.8p1/8.12.8) with ESMTP id h4GJFcpF010683; Fri, 16 May 2003 15:15:38 -0400 Received: from localhost (qqi@localhost) by shell.TheWorld.com (8.9.3/8.9.3) with ESMTP id PAA4270825; Fri, 16 May 2003 15:15:34 -0400 (EDT) X-Authentication-Warning: shell01.TheWorld.com: qqi owned process doing -bs Date: Fri, 16 May 2003 19:15:00 -0000 From: Quality Quorum To: Kris Warkentin cc: "Gdb@Sources.Redhat.Com" Subject: Re: (remote) hellishly slow single stepping over library calls In-Reply-To: <071001c31bd8$841db090$0202040a@catdog> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-SW-Source: 2003-05/txt/msg00249.txt.bz2 On Fri, 16 May 2003, Kris Warkentin wrote: > When debugging using our QNX pdebug remote protocol and single stepping over > a library call like printf, it takes a LOOOONG time. I'm talking like two > or three minutes. A 'next' is fine but looking at the output of running our > pdebug server in verbose mode, gdb is doing step, step, step, all the way > through the whole library call. Every single step results in fetching > registers and there is a huge amount of wire traffic generated. > > This didn't happen with older (ie 5.0) gdbs which didn't seem to know how to > single step through our shared lib code but now that it does, this is pretty > painful. Obviously it makes more sense to 'next' over a library call, > especially if you don't want to go into it but the question is, can anyone > think of a way to optimize this? I though of putting in a hack like: > > if (reg == PC_REGNUM) > only_get_pc(); > > to avoid fetching the whole regset but it probably won't make that much > difference since there's still a packet over the wire each time and most > regsets fit in one packet anyway. > > Would this problem also exist with the normal remote protocol? (stupid > users...clicking step instead of next....;-) > What about using the T-format with a value of PC to report status, instead of using the S-format, for the purpose. > Kris Thanks, Aleksey