From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6135 invoked by alias); 2 Feb 2007 16:56:34 -0000 Received: (qmail 6127 invoked by uid 22791); 2 Feb 2007 16:56:33 -0000 X-Spam-Check-By: sourceware.org Received: from nevyn.them.org (HELO nevyn.them.org) (66.93.172.17) by sourceware.org (qpsmtpd/0.31.1) with ESMTP; Fri, 02 Feb 2007 16:56:27 +0000 Received: from drow by nevyn.them.org with local (Exim 4.63) (envelope-from ) id 1HD1hz-000845-Ji; Fri, 02 Feb 2007 11:56:19 -0500 Date: Fri, 02 Feb 2007 16:56:00 -0000 From: Daniel Jacobowitz To: Joel Brobecker Cc: Robert Dewar , Wiljan Derks , gdb@sourceware.org, Mark Kettenis Subject: Re: How to tell gdb about dlls using remote protocol Message-ID: <20070202165619.GA30801@nevyn.them.org> Mail-Followup-To: Joel Brobecker , Robert Dewar , Wiljan Derks , gdb@sourceware.org, Mark Kettenis References: <003f01c7457c$0f2d8090$9600000a@kamer> <20070131223113.GA15122@nevyn.them.org> <20070201175311.GG17864@adacore.com> <20070201225437.GA13740@nevyn.them.org> <20070201230301.GM17864@adacore.com> <20070201235944.GA16114@nevyn.them.org> <45C2D80E.2050403@adacore.com> <20070202114312.GA15239@nevyn.them.org> <20070202165155.GS17864@adacore.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20070202165155.GS17864@adacore.com> User-Agent: Mutt/1.5.13 (2006-08-11) X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2007-02/txt/msg00017.txt.bz2 On Fri, Feb 02, 2007 at 08:51:55AM -0800, Joel Brobecker wrote: > > Sorry, I have to disagree from my own experience. Pretty much any time > > you stop a running program it's in those DLLs. And this is doubly true > > for any threaded program - there's always a couple of threads that I > > have no idea what the heck they're doing. > > In fact, we have a local modification in our tree (different from the > one I recently suggested) where we default to using %ebp when inside a > frameless function, and inside a DLL. This is a heuristic way to handle > all those highly optimized functions for which prologue analysis cannot > be used. Short of implementing support for MS symbol info, this is the > only way we could get the backtrace of most threads. This is a hack I > didn't submit because it's a bit crude, and it only exchanges certain > failures for others - but we have found in practice that this was the > right choice for us. I can certainly post it too, if you are interested. Hmm, perhaps it successfully gets you out and only misses frames. I'm pretty sure I remember that when debugging a Windows build of GDB, the select helper threads live somewhere in NTDLL without a valid frame. I'd be curious to see it, at least, but I'm not sure what we can do. -- Daniel Jacobowitz CodeSourcery