From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25276 invoked by alias); 7 Mar 2002 22:02:11 -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 25167 invoked from network); 7 Mar 2002 22:02:07 -0000 Received: from unknown (HELO nevyn.them.org) (128.2.145.6) by sources.redhat.com with SMTP; 7 Mar 2002 22:02:07 -0000 Received: from drow by nevyn.them.org with local (Exim 3.34 #1 (Debian)) id 16j5xf-00064l-00; Thu, 07 Mar 2002 17:02:07 -0500 Date: Thu, 07 Mar 2002 14:02:00 -0000 From: Daniel Jacobowitz To: "H . J . Lu" Cc: GDB Subject: Re: Does gdb 5.2 work with statically linked thread application under Linux? Message-ID: <20020307170207.A23248@nevyn.them.org> Mail-Followup-To: "H . J . Lu" , GDB References: <20020306233050.A31848@lucon.org> <20020307024841.A24509@nevyn.them.org> <20020307133928.A12672@lucon.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20020307133928.A12672@lucon.org> User-Agent: Mutt/1.3.23i X-SW-Source: 2002-03/txt/msg00063.txt.bz2 On Thu, Mar 07, 2002 at 01:39:28PM -0800, H . J . Lu wrote: > On Thu, Mar 07, 2002 at 02:48:41AM -0500, Daniel Jacobowitz wrote: > > On Wed, Mar 06, 2002 at 11:30:50PM -0800, H . J . Lu wrote: > > > Does gdb 5.2 work with statically linked thread application under > > > Linux? It doesn't work for me at all. It doesn't know any thread. > > > I have a patch which works for gdb 5.1. Now it doesn't work for 5.2 > > > anymore. > > > > My fault, I think. > > > > The problem is that in a dynamically linked binary > > thread_db_new_objfile will be called for every library is loaded. At > > this point current_target is "child", so target_has_execution is true. > > But with a static binary, the first time the function is called objfile > > is NULL, and the second time current_target is "exec" (which has > > target_has_execution set false). > > > > Perhaps target_has_execution was not the right check after all, if > > "exec" has it set false (which makes fairly little sense to me...) or > > perhaps we need to call the hook again later. Michael, any idea? > > > > What is the problem if "|| !target_has_execution" is removed? I removed > it. Gdb now works on statically linked thread application as well as > core file. Did I miss soemthing? Try running 'info threads' on the corefile of a multithreaded application. Recent Linux kernels will allow them to dump core. I've also got a patch to put multiple threads into the corefile. There's a sample corefile at: http://crack.them.org/~drow/mtc2.tar.gz Without !target_has_execution, we try to use lin-lwp on the coredump. That works very badly. -- Daniel Jacobowitz Carnegie Mellon University MontaVista Software Debian GNU/Linux Developer