diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2013-04-11 14:13:44 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2013-04-11 14:13:44 +0000 |
commit | b292c7831823605b02a564b0a9274f95141c92ee (patch) | |
tree | 2c2d014ae9b34f1d6cd579ac8fe02b69cbfee893 /gdb/gcore.in | |
parent | d6cb50a2010f55f3e2b5e7c65d5fa40c70eb369d (diff) | |
download | binutils-b292c7831823605b02a564b0a9274f95141c92ee.zip binutils-b292c7831823605b02a564b0a9274f95141c92ee.tar.gz binutils-b292c7831823605b02a564b0a9274f95141c92ee.tar.bz2 |
gdb/
* Makefile.in (HAVE_NATIVE_GCORE_TARGET): New.
(generated_files): Add gcore.
(install-only, uninstall): Add gcore if HAVE_NATIVE_GCORE_TARGET or
HAVE_NATIVE_GCORE_HOST.
(gcore): New.
* NEWS (Changes since GDB 7.6): Mention newly installed gcore.
* config/alpha/alpha-osf3.mh, config/i386/fbsd.mh,
config/i386/fbsd64.mh, config/i386/i386gnu.mh, config/i386/i386sol2.mh,
config/i386/sol2-64.mh, config/mips/irix5.mh, config/mips/irix6.mh,
config/powerpc/fbsd.mh, config/sparc/fbsd.mh, config/sparc/sol2.mh:
Add HAVE_NATIVE_GCORE_HOST.
* configure: Regenerate.
* configure.ac (HAVE_NATIVE_GCORE_TARGET): New, set it, AC_SUBST it.
New AC_SUBST fir GDB_TRANSFORM_NAME and GCORE_TRANSFORM_NAME. New
AC_CONFIG_FILES for gcore.
* configure.tgt: Add gdb_have_gcore to the initial comment. Set
gdb_have_gcore.
* gdb_gcore.sh: Rename to ...
* gcore.in: ... here. Remove gcore.sh comment. Use GDB_TRANSFORM_NAME
and GCORE_TRANSFORM_NAME substitutions.
gdb/doc/
* Makefile.in (MAN1S): Add gcore.1.
Remove "Host, target, and site specific Makefile fragments" comment.
(@host_makefile_frag@, HAVE_NATIVE_GCORE_TARGET): New.
(install-man1, uninstall-man1): Conditionalize gcore.1.
(gcore.1): New.
* gdb.texinfo (Man Pages): Add gcore man.
(gcore man): New node.
Diffstat (limited to 'gdb/gcore.in')
-rw-r--r-- | gdb/gcore.in | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/gdb/gcore.in b/gdb/gcore.in new file mode 100644 index 0000000..9c5b14d --- /dev/null +++ b/gdb/gcore.in @@ -0,0 +1,69 @@ +#!/bin/sh + +# Copyright (C) 2003-2013 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 3 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, see <http://www.gnu.org/licenses/>. + +# +# 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_TRANSFORM_NAME@ [-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_TRANSFORM_NAME@ [-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 + # `</dev/null' to avoid touching interactive terminal if it is + # available but not accessible as GDB would get stopped on SIGTTIN. + @GDB_TRANSFORM_NAME@ </dev/null --nx --batch \ + -ex "set pagination off" -ex "set height 0" -ex "set width 0" \ + -ex "attach $pid" -ex "gcore $name.$pid" -ex detach -ex quit + + if [ -r $name.$pid ] ; then + rc=0 + else + echo "@GCORE_TRANSFORM_NAME@: failed to create $name.$pid" + rc=1 + break + fi + + +done + +exit $rc |