From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14535 invoked by alias); 17 Apr 2003 12:59:37 -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 14528 invoked from network); 17 Apr 2003 12:59:36 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 17 Apr 2003 12:59:36 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id h3HCxaD10324 for ; Thu, 17 Apr 2003 08:59:36 -0400 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [172.16.52.156]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h3HCxaq12502; Thu, 17 Apr 2003 08:59:36 -0400 Received: from localhost.redhat.com (romulus-int.sfbay.redhat.com [172.16.27.46]) by pobox.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h3HCxZk18080; Thu, 17 Apr 2003 08:59:35 -0400 Received: by localhost.redhat.com (Postfix, from userid 469) id 523382C43F; Thu, 17 Apr 2003 09:03:53 -0400 (EDT) From: Elena Zannoni MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <16030.42551.529787.466304@localhost.redhat.com> Date: Thu, 17 Apr 2003 12:59:00 -0000 To: gdb-patches@sources.redhat.com Cc: msnyder@redhat.com Subject: [PATCH] gcore command script X-SW-Source: 2003-04/txt/msg00337.txt.bz2 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. I picked the name gdb_gcore.sh. Seemed right at the moment. On a side note, should we have a 'scripts' subdirectory in gdb? elena --- /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 +