From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24417 invoked by alias); 24 Sep 2003 22:40:28 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 24410 invoked from network); 24 Sep 2003 22:40:26 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sources.redhat.com with SMTP; 24 Sep 2003 22:40:26 -0000 Received: from drow by nevyn.them.org with local (Exim 4.22 #1 (Debian)) id 1A2IJ0-0004ic-Hp for ; Wed, 24 Sep 2003 18:40:18 -0400 Date: Wed, 24 Sep 2003 22:40:00 -0000 From: Daniel Jacobowitz To: gdb-patches@sources.redhat.com Subject: Re: [RFA] gcore/linux-proc fix Message-ID: <20030924224015.GA11928@nevyn.them.org> Mail-Followup-To: gdb-patches@sources.redhat.com References: <16241.52164.339042.549189@localhost.redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <16241.52164.339042.549189@localhost.redhat.com> User-Agent: Mutt/1.5.1i X-SW-Source: 2003-09/txt/msg00542.txt.bz2 On Wed, Sep 24, 2003 at 12:52:20PM -0400, Elena Zannoni wrote: > > This patch fixes some problems with the gcore command on single > threaded programs. Before the patch, the core file did not report > anywhere the PID of the process: > > > CORE 144 PRSTATUS > SIGINFO: signo: 0, code = 0, errno = 0 > signal: 0, pending: 00000000, holding: 00000000 > pid: 0, ppid = 0, pgrp = 0, sid = 0 > ^^^^^^^^^ > > > utime: 0.000000s, stime: 0.000000s > cutime: 0.000000s, cstime: 0.000000s > eax: fffffffc ebx: bfffc4a4 ecx: bfffc4a4 edx: b75d79f8 > esi: bfffc5bc edi: bfffc53c ebp: bfffc648 esp: bfffc484 > eip: b75ebc02 eflags: 00000246, original eax: 000000a2 > cs: 0023 ds: 002b es: 002b fs: 0000 gs: 0033 ss: 002b > > > > > after the patch: > > > CORE 144 PRSTATUS > SIGINFO: signo: 0, code = 0, errno = 0 > signal: 0, pending: 00000000, holding: 00000000 > pid: 5846, ppid = 0, pgrp = 0, sid = 0 > ^^^^^^^^^^^^ > > utime: 0.000000s, stime: 0.000000s > cutime: 0.000000s, cstime: 0.000000s > eax: fffffffc ebx: bffff674 ecx: bffff674 edx: b75d79f8 > esi: bffff78c edi: bffff70c ebp: bffff818 esp: bffff654 > eip: b75ebc02 eflags: 00000246, original eax: 000000a2 > cs: 0023 ds: 002b es: 002b fs: 0000 gs: 0033 ss: 002b > > CORE 108 FPREGSET > LINUX 512 : 1189489535 > > > > Note also that if the function to write the note section is called via > the iterator for multi-threaded programs > (i.e. linux_corefile_thread_callback), > registers_changed()/target_fetch_registers() are called, but if > invoked directly for the single-threaded case, > registers_changed()/target_fetch_registers() are not called. > So I added a wrapper to do that. > > It all works fine with multi-threaded apps. Looks good to me. I've been using a similar hack to call target_fetch_registers, too. -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer