From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32535 invoked by alias); 17 Apr 2003 17:41:21 -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 32524 invoked from network); 17 Apr 2003 17:41:21 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 17 Apr 2003 17:41:21 -0000 Received: from int-mx2.corp.redhat.com (nat-pool-rdu-dmz.redhat.com [172.16.52.200] (may be forged)) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id h3HHfKD23363 for ; Thu, 17 Apr 2003 13:41:20 -0400 Received: from potter.sfbay.redhat.com (potter.sfbay.redhat.com [172.16.27.15]) by int-mx2.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h3HHfJW10562; Thu, 17 Apr 2003 13:41:19 -0400 Received: from redhat.com (reddwarf.sfbay.redhat.com [172.16.24.50]) by potter.sfbay.redhat.com (8.11.6/8.11.6) with ESMTP id h3HHfJM28956; Thu, 17 Apr 2003 10:41:19 -0700 Message-ID: <3E9EE73F.6D753CF7@redhat.com> Date: Thu, 17 Apr 2003 17:41:00 -0000 From: Michael Snyder Organization: Red Hat, Inc. X-Accept-Language: en MIME-Version: 1.0 To: Elena Zannoni CC: gdb-patches@sources.redhat.com Subject: Re: [PATCH] gcore command script References: <16030.42551.529787.466304@localhost.redhat.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-SW-Source: 2003-04/txt/msg00341.txt.bz2 Elena Zannoni wrote: > > This is a script that can be used to generate a core file for a given > process. It works by invoking gdb on the process, and using the gcore > command. > > It was originally written by Michael Snyder, I think. Michael Snyder and Karen Bennet. > I picked the name gdb_gcore.sh. Seemed right at the moment. > > On a side note, should we have a 'scripts' subdirectory in gdb? Seems like we're getting to that point... > --- /dev/null Thu Apr 11 10:25:15 2002 > +++ src/gdb/gdb_gcore.sh Mon Mar 31 17:28:28 2003 > @@ -0,0 +1,81 @@ > +#!/bin/sh > + > +# Copyright 2003 Free Software Foundation, Inc. > + > +# This program is free software; you can redistribute it and/or modify > +# it under the terms of the GNU General Public License as published by > +# the Free Software Foundation; either version 2 of the License, or > +# (at your option) any later version. > +# > +# This program is distributed in the hope that it will be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +# GNU General Public License for more details. > +# > +# You should have received a copy of the GNU General Public License > +# along with this program; if not, write to the Free Software > +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. > + > +# Please email any bugs, comments, and/or additions to this file to: > +# bug-gdb@prep.ai.mit.edu > + > +# > +# gdb_gcore.sh > +# Script to generate a core file of a running program. > +# It starts up gdb, attaches to the given PID and invokes the gcore command. > +# > + > +if [ "$#" -eq "0" ] > +then > + echo "usage: gcore [-o filename] pid" > + exit 2 > +fi > + > +# Need to check for -o option, but set default basename to "core". > +name=core > + > +if [ "$1" = "-o" ] > +then > + if [ "$#" -lt "3" ] > + then > + # Not enough arguments. > + echo "usage: gcore [-o filename] pid" > + exit 2 > + fi > + name=$2 > + > + # Shift over to start of pid list > + shift; shift > +fi > + > +# Initialise return code. > +rc=0 > + > +# Loop through pids > +for pid in $* > +do > + # Write gdb script for pid $pid. > + > + # Avoid need for temporary files by using funky "here > + # document" feature of sh. > + > + /usr/bin/gdb > /dev/null << EOF > + attach $pid > + gcore $name.$pid > + detach > + quit > +EOF > + > + if [ -r $name.$pid ] ; then > + rc=0 > + else > + echo gcore: failed to create $name.$pid > + rc=1 > + break > + fi > + > + > +done > + > +exit $rc > +