You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
690 lines
23 KiB
690 lines
23 KiB
http://sourceware.org/ml/gdb-cvs/2013-04/msg00109.html |
|
|
|
### src/gdb/ChangeLog 2013/04/11 13:14:04 1.15397 |
|
### src/gdb/ChangeLog 2013/04/11 14:13:42 1.15398 |
|
## -1,4 +1,28 @@ |
|
2013-04-11 Jan Kratochvil <jan.kratochvil@redhat.com> |
|
+ Pedro Alves <palves@redhat.com> |
|
+ |
|
+ * 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. |
|
+ |
|
+2013-04-11 Jan Kratochvil <jan.kratochvil@redhat.com> |
|
|
|
* remote.c (unpush_and_perror): Add output message final dot. |
|
|
|
### src/gdb/doc/ChangeLog 2013/04/10 15:11:12 1.1440 |
|
### src/gdb/doc/ChangeLog 2013/04/11 14:13:44 1.1441 |
|
## -1,3 +1,13 @@ |
|
+2013-04-11 Jan Kratochvil <jan.kratochvil@redhat.com> |
|
+ |
|
+ * 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. |
|
+ |
|
2013-04-10 Pedro Alves <palves@redhat.com> |
|
|
|
* gdb.texinfo (Process Record and Replay): Document that "set |
|
Index: gdb-7.6/gdb/gcore.in |
|
=================================================================== |
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
|
+++ gdb-7.6/gdb/gcore.in 2013-04-26 15:33:01.171049247 +0200 |
|
@@ -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 |
|
Index: gdb-7.6/gdb/gdb_gcore.sh |
|
=================================================================== |
|
--- gdb-7.6.orig/gdb/gdb_gcore.sh 2013-01-01 07:32:42.000000000 +0100 |
|
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000 |
|
@@ -1,70 +0,0 @@ |
|
-#!/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/>. |
|
- |
|
-# |
|
-# 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 |
|
- # `</dev/null' to avoid touching interactive terminal if it is |
|
- # available but not accessible as GDB would get stopped on SIGTTIN. |
|
- gdb </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: failed to create $name.$pid |
|
- rc=1 |
|
- break |
|
- fi |
|
- |
|
- |
|
-done |
|
- |
|
-exit $rc |
|
Index: gdb-7.6/gdb/Makefile.in |
|
=================================================================== |
|
--- gdb-7.6.orig/gdb/Makefile.in 2013-04-26 15:32:58.000000000 +0200 |
|
+++ gdb-7.6/gdb/Makefile.in 2013-04-26 15:33:01.172049246 +0200 |
|
@@ -414,6 +414,7 @@ CONFIG_ALL= @CONFIG_ALL@ |
|
CONFIG_CLEAN= @CONFIG_CLEAN@ |
|
CONFIG_INSTALL = @CONFIG_INSTALL@ |
|
CONFIG_UNINSTALL = @CONFIG_UNINSTALL@ |
|
+HAVE_NATIVE_GCORE_TARGET = @HAVE_NATIVE_GCORE_TARGET@ |
|
|
|
# -I. for config files. |
|
# -I$(srcdir) for gdb internal headers. |
|
@@ -963,7 +964,7 @@ DISTSTUFF = $(YYFILES) |
|
|
|
# All generated files which can be included by another file. |
|
generated_files = config.h observer.h observer.inc ada-lex.c jit-reader.h \ |
|
- $(GNULIB_H) $(NAT_GENERATED_FILES) |
|
+ $(GNULIB_H) $(NAT_GENERATED_FILES) gcore |
|
|
|
.c.o: |
|
$(COMPILE) $< |
|
@@ -1039,6 +1040,19 @@ install-only: $(CONFIG_INSTALL) |
|
$(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) ; \ |
|
$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(includedir)/gdb ; \ |
|
$(INSTALL_DATA) jit-reader.h $(DESTDIR)$(includedir)/gdb/jit-reader.h |
|
+ if test "x$(HAVE_NATIVE_GCORE_TARGET)$(HAVE_NATIVE_GCORE_HOST)" != x; \ |
|
+ then \ |
|
+ transformed_name=`t='$(program_transform_name)'; \ |
|
+ echo gcore | sed -e "$$t"` ; \ |
|
+ if test "x$$transformed_name" = x; then \ |
|
+ transformed_name=gcore ; \ |
|
+ else \ |
|
+ true ; \ |
|
+ fi ; \ |
|
+ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(bindir) ; \ |
|
+ $(INSTALL_PROGRAM) gcore \ |
|
+ $(DESTDIR)$(bindir)/$$transformed_name; \ |
|
+ fi |
|
@$(MAKE) DO=install "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do |
|
|
|
install-python: |
|
@@ -1054,6 +1068,17 @@ uninstall: force $(CONFIG_UNINSTALL) |
|
fi ; \ |
|
rm -f $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) \ |
|
$(DESTDIR)$(man1dir)/$$transformed_name.1 |
|
+ if test "x$(HAVE_NATIVE_GCORE_TARGET)$(HAVE_NATIVE_GCORE_HOST)" != x; \ |
|
+ then \ |
|
+ transformed_name=`t='$(program_transform_name)'; \ |
|
+ echo gcore | sed -e "$$t"` ; \ |
|
+ if test "x$$transformed_name" = x; then \ |
|
+ transformed_name=gcore ; \ |
|
+ else \ |
|
+ true ; \ |
|
+ fi ; \ |
|
+ rm -f $(DESTDIR)$(bindir)/$$transformed_name; \ |
|
+ fi |
|
@$(MAKE) DO=uninstall "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do |
|
|
|
# The C++ name parser can be built standalone for testing. |
|
@@ -1298,6 +1323,9 @@ data-directory/Makefile: data-directory/ |
|
jit-reader.h: $(srcdir)/jit-reader.in |
|
$(SHELL) config.status $@ |
|
|
|
+gcore: $(srcdir)/gcore.in |
|
+ $(SHELL) config.status $@ |
|
+ |
|
config.h: stamp-h ; @true |
|
stamp-h: $(srcdir)/config.in config.status |
|
CONFIG_HEADERS=config.h:config.in \ |
|
Index: gdb-7.6/gdb/NEWS |
|
=================================================================== |
|
--- gdb-7.6.orig/gdb/NEWS 2013-04-26 13:43:30.000000000 +0200 |
|
+++ gdb-7.6/gdb/NEWS 2013-04-26 15:33:19.784032404 +0200 |
|
@@ -1,6 +1,9 @@ |
|
What has changed in GDB? |
|
(Organized release by release) |
|
|
|
+* Newly installed $prefix/bin/gcore acts as a shell interface for the |
|
+ GDB command gcore. |
|
+ |
|
*** Changes in GDB 7.6 |
|
|
|
* Target record has been renamed to record-full. |
|
Index: gdb-7.6/gdb/configure |
|
=================================================================== |
|
--- gdb-7.6.orig/gdb/configure 2013-03-12 23:25:32.000000000 +0100 |
|
+++ gdb-7.6/gdb/configure 2013-04-26 15:33:01.179049240 +0200 |
|
@@ -591,6 +591,8 @@ ac_includes_default="\ |
|
enable_option_checking=no |
|
ac_subst_vars='LTLIBOBJS |
|
LIBOBJS |
|
+GCORE_TRANSFORM_NAME |
|
+GDB_TRANSFORM_NAME |
|
GDB_NM_FILE |
|
frags |
|
target_subdir |
|
@@ -681,6 +683,7 @@ AWK |
|
REPORT_BUGS_TEXI |
|
REPORT_BUGS_TO |
|
PKGVERSION |
|
+HAVE_NATIVE_GCORE_TARGET |
|
TARGET_OBS |
|
subdirs |
|
GDB_DATADIR |
|
@@ -5075,6 +5078,7 @@ fi |
|
|
|
TARGET_OBS= |
|
all_targets= |
|
+HAVE_NATIVE_GCORE_TARGET= |
|
|
|
for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'` |
|
do |
|
@@ -5109,6 +5113,12 @@ fi |
|
if test x${want64} = xfalse; then |
|
. ${srcdir}/../bfd/config.bfd |
|
fi |
|
+ |
|
+ # Check whether this target is native and supports gcore. |
|
+ if test $gdb_native = yes -a "$targ_alias" = "$target_alias" \ |
|
+ && $gdb_have_gcore; then |
|
+ HAVE_NATIVE_GCORE_TARGET=1 |
|
+ fi |
|
fi |
|
done |
|
|
|
@@ -5171,6 +5181,7 @@ fi |
|
|
|
|
|
|
|
+ |
|
# For other settings, only the main target counts. |
|
gdb_sim= |
|
gdb_osabi= |
|
@@ -14131,6 +14142,21 @@ ac_config_links="$ac_config_links $ac_co |
|
$as_echo "#define GDB_DEFAULT_HOST_CHARSET \"UTF-8\"" >>confdefs.h |
|
|
|
|
|
+# Undo the $ec_script escaping suitable for Makefile. |
|
+transform=`echo "$program_transform_name" | sed -e 's/\\$\\$/\\$/g'` |
|
+GDB_TRANSFORM_NAME=`echo gdb | sed -e "$transform"` |
|
+if test "x$GDB_TRANSFORM_NAME" = x; then |
|
+ GDB_TRANSFORM_NAME=gdb |
|
+fi |
|
+ |
|
+GCORE_TRANSFORM_NAME=`echo gcore | sed -e "$transform"` |
|
+if test "x$GCORE_TRANSFORM_NAME" = x; then |
|
+ GCORE_TRANSFORM_NAME=gcore |
|
+fi |
|
+ |
|
+ac_config_files="$ac_config_files gcore" |
|
+ |
|
+ |
|
ac_config_files="$ac_config_files Makefile gdb-gdb.gdb doc/Makefile data-directory/Makefile" |
|
|
|
ac_config_commands="$ac_config_commands default" |
|
@@ -14841,6 +14867,7 @@ do |
|
"depdir") CONFIG_COMMANDS="$CONFIG_COMMANDS depdir" ;; |
|
"jit-reader.h") CONFIG_FILES="$CONFIG_FILES jit-reader.h:jit-reader.in" ;; |
|
"$ac_config_links_1") CONFIG_LINKS="$CONFIG_LINKS $ac_config_links_1" ;; |
|
+ "gcore") CONFIG_FILES="$CONFIG_FILES gcore" ;; |
|
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; |
|
"gdb-gdb.gdb") CONFIG_FILES="$CONFIG_FILES gdb-gdb.gdb" ;; |
|
"doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; |
|
@@ -15462,6 +15489,7 @@ $as_echo "$as_me: executing $ac_file com |
|
|
|
case $ac_file$ac_mode in |
|
"depdir":C) $SHELL $ac_aux_dir/mkinstalldirs $DEPDIR ;; |
|
+ "gcore":F) chmod +x gcore ;; |
|
"default":C) |
|
case x$CONFIG_HEADERS in |
|
xconfig.h:config.in) |
|
Index: gdb-7.6/gdb/configure.ac |
|
=================================================================== |
|
--- gdb-7.6.orig/gdb/configure.ac 2013-03-12 23:25:32.000000000 +0100 |
|
+++ gdb-7.6/gdb/configure.ac 2013-04-26 15:33:01.180049239 +0200 |
|
@@ -203,6 +203,7 @@ fi |
|
|
|
TARGET_OBS= |
|
all_targets= |
|
+HAVE_NATIVE_GCORE_TARGET= |
|
|
|
for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'` |
|
do |
|
@@ -236,6 +237,12 @@ do |
|
if test x${want64} = xfalse; then |
|
. ${srcdir}/../bfd/config.bfd |
|
fi |
|
+ |
|
+ # Check whether this target is native and supports gcore. |
|
+ if test $gdb_native = yes -a "$targ_alias" = "$target_alias" \ |
|
+ && $gdb_have_gcore; then |
|
+ HAVE_NATIVE_GCORE_TARGET=1 |
|
+ fi |
|
fi |
|
done |
|
|
|
@@ -264,6 +271,7 @@ if test x${all_targets} = xtrue; then |
|
fi |
|
|
|
AC_SUBST(TARGET_OBS) |
|
+AC_SUBST(HAVE_NATIVE_GCORE_TARGET) |
|
|
|
# For other settings, only the main target counts. |
|
gdb_sim= |
|
@@ -2349,6 +2357,20 @@ dnl At the moment, we just assume it's |
|
AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8", |
|
[Define to be a string naming the default host character set.]) |
|
|
|
+# Undo the $ec_script escaping suitable for Makefile. |
|
+transform=`echo "$program_transform_name" | sed -e 's/[\\$][\\$]/\\$/g'` |
|
+GDB_TRANSFORM_NAME=`echo gdb | sed -e "$transform"` |
|
+if test "x$GDB_TRANSFORM_NAME" = x; then |
|
+ GDB_TRANSFORM_NAME=gdb |
|
+fi |
|
+AC_SUBST(GDB_TRANSFORM_NAME) |
|
+GCORE_TRANSFORM_NAME=`echo gcore | sed -e "$transform"` |
|
+if test "x$GCORE_TRANSFORM_NAME" = x; then |
|
+ GCORE_TRANSFORM_NAME=gcore |
|
+fi |
|
+AC_SUBST(GCORE_TRANSFORM_NAME) |
|
+AC_CONFIG_FILES([gcore], [chmod +x gcore]) |
|
+ |
|
AC_OUTPUT(Makefile gdb-gdb.gdb doc/Makefile data-directory/Makefile, |
|
[ |
|
case x$CONFIG_HEADERS in |
|
Index: gdb-7.6/gdb/configure.tgt |
|
=================================================================== |
|
--- gdb-7.6.orig/gdb/configure.tgt 2013-03-05 14:37:10.000000000 +0100 |
|
+++ gdb-7.6/gdb/configure.tgt 2013-04-26 15:33:01.180049239 +0200 |
|
@@ -6,6 +6,7 @@ |
|
# gdb_sim simulator library for target |
|
# gdb_osabi default OS ABI to use with target |
|
# build_gdbserver set to "yes" if gdbserver supports target |
|
+# gdb_have_gcore set to "true"/"false" if this target can run gcore |
|
|
|
# NOTE: Every file added to a gdb_target_obs variable for any target here |
|
# must also be added to either ALL_TARGET_OBS or ALL_64_TARGET_OBS |
|
@@ -703,3 +704,14 @@ m68*-*-openbsd* | m88*-*-openbsd* | vax- |
|
*-*-symbianelf*) |
|
gdb_osabi=GDB_OSABI_SYMBIAN ;; |
|
esac |
|
+ |
|
+# Check whether this target supports gcore. |
|
+# Such target has to call set_gdbarch_find_memory_regions. |
|
+case " ${gdb_target_obs} " in |
|
+ *" linux-tdep.o "*) |
|
+ gdb_have_gcore=true |
|
+ ;; |
|
+ *) |
|
+ gdb_have_gcore=false |
|
+ ;; |
|
+esac |
|
Index: gdb-7.6/gdb/config/alpha/alpha-osf3.mh |
|
=================================================================== |
|
--- gdb-7.6.orig/gdb/config/alpha/alpha-osf3.mh 2012-01-10 17:30:44.000000000 +0100 |
|
+++ gdb-7.6/gdb/config/alpha/alpha-osf3.mh 2013-04-26 15:33:01.181049238 +0200 |
|
@@ -3,4 +3,5 @@ NAT_FILE= nm-osf3.h |
|
NATDEPFILES= alpha-nat.o fork-child.o \ |
|
solib-osf.o procfs.o proc-api.o proc-events.o proc-flags.o \ |
|
proc-why.o dec-thread.o |
|
+HAVE_NATIVE_GCORE_HOST = 1 |
|
NAT_CLIBS= -lpthreaddebug |
|
Index: gdb-7.6/gdb/config/i386/fbsd.mh |
|
=================================================================== |
|
--- gdb-7.6.orig/gdb/config/i386/fbsd.mh 2009-10-26 19:28:13.000000000 +0100 |
|
+++ gdb-7.6/gdb/config/i386/fbsd.mh 2013-04-26 15:33:01.181049238 +0200 |
|
@@ -3,5 +3,6 @@ NATDEPFILES= fork-child.o inf-ptrace.o \ |
|
fbsd-nat.o i386-nat.o i386bsd-nat.o i386fbsd-nat.o \ |
|
bsd-kvm.o |
|
NAT_FILE= nm-fbsd.h |
|
+HAVE_NATIVE_GCORE_HOST = 1 |
|
|
|
LOADLIBES= -lkvm |
|
Index: gdb-7.6/gdb/config/i386/fbsd64.mh |
|
=================================================================== |
|
--- gdb-7.6.orig/gdb/config/i386/fbsd64.mh 2012-02-09 17:06:44.000000000 +0100 |
|
+++ gdb-7.6/gdb/config/i386/fbsd64.mh 2013-04-26 15:33:01.181049238 +0200 |
|
@@ -2,5 +2,6 @@ |
|
NATDEPFILES= fork-child.o inf-ptrace.o \ |
|
fbsd-nat.o amd64-nat.o amd64bsd-nat.o amd64fbsd-nat.o \ |
|
bsd-kvm.o i386-nat.o |
|
+HAVE_NATIVE_GCORE_HOST = 1 |
|
|
|
LOADLIBES= -lkvm |
|
Index: gdb-7.6/gdb/config/i386/i386gnu.mh |
|
=================================================================== |
|
--- gdb-7.6.orig/gdb/config/i386/i386gnu.mh 2012-01-10 17:30:44.000000000 +0100 |
|
+++ gdb-7.6/gdb/config/i386/i386gnu.mh 2013-04-26 15:33:01.181049238 +0200 |
|
@@ -2,6 +2,7 @@ |
|
NATDEPFILES= i386gnu-nat.o gnu-nat.o core-regset.o fork-child.o \ |
|
notify_S.o process_reply_S.o msg_reply_S.o \ |
|
msg_U.o exc_request_U.o exc_request_S.o |
|
+HAVE_NATIVE_GCORE_HOST = 1 |
|
|
|
NAT_FILE= nm-i386gnu.h |
|
MH_CFLAGS = -D_GNU_SOURCE |
|
Index: gdb-7.6/gdb/config/i386/i386sol2.mh |
|
=================================================================== |
|
--- gdb-7.6.orig/gdb/config/i386/i386sol2.mh 2010-04-26 15:53:56.000000000 +0200 |
|
+++ gdb-7.6/gdb/config/i386/i386sol2.mh 2013-04-26 15:33:01.181049238 +0200 |
|
@@ -1,3 +1,4 @@ |
|
# Host: Solaris x86 |
|
NATDEPFILES= fork-child.o i386v4-nat.o i386-sol2-nat.o \ |
|
procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o |
|
+HAVE_NATIVE_GCORE_HOST = 1 |
|
Index: gdb-7.6/gdb/config/i386/sol2-64.mh |
|
=================================================================== |
|
--- gdb-7.6.orig/gdb/config/i386/sol2-64.mh 2010-04-26 15:53:57.000000000 +0200 |
|
+++ gdb-7.6/gdb/config/i386/sol2-64.mh 2013-04-26 15:33:01.182049237 +0200 |
|
@@ -1,3 +1,4 @@ |
|
# Host: Solaris x86_64 |
|
NATDEPFILES= fork-child.o amd64-nat.o i386v4-nat.o i386-sol2-nat.o \ |
|
procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o |
|
+HAVE_NATIVE_GCORE_HOST = 1 |
|
Index: gdb-7.6/gdb/config/mips/irix5.mh |
|
=================================================================== |
|
--- gdb-7.6.orig/gdb/config/mips/irix5.mh 2012-01-10 17:30:45.000000000 +0100 |
|
+++ gdb-7.6/gdb/config/mips/irix5.mh 2013-04-26 15:33:01.182049237 +0200 |
|
@@ -1,3 +1,4 @@ |
|
# Host: SGI Iris running irix 5.x |
|
NATDEPFILES= fork-child.o irix5-nat.o procfs.o \ |
|
proc-api.o proc-events.o proc-flags.o proc-why.o |
|
+HAVE_NATIVE_GCORE_HOST = 1 |
|
Index: gdb-7.6/gdb/config/mips/irix6.mh |
|
=================================================================== |
|
--- gdb-7.6.orig/gdb/config/mips/irix6.mh 2012-01-10 17:30:45.000000000 +0100 |
|
+++ gdb-7.6/gdb/config/mips/irix6.mh 2013-04-26 15:33:01.182049237 +0200 |
|
@@ -1,3 +1,4 @@ |
|
# Host: SGI Iris running irix 6.x |
|
NATDEPFILES= fork-child.o irix5-nat.o procfs.o \ |
|
proc-api.o proc-events.o proc-flags.o proc-why.o |
|
+HAVE_NATIVE_GCORE_HOST = 1 |
|
Index: gdb-7.6/gdb/config/powerpc/fbsd.mh |
|
=================================================================== |
|
--- gdb-7.6.orig/gdb/config/powerpc/fbsd.mh 2013-02-04 21:48:53.000000000 +0100 |
|
+++ gdb-7.6/gdb/config/powerpc/fbsd.mh 2013-04-26 15:33:01.182049237 +0200 |
|
@@ -18,6 +18,7 @@ |
|
# along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
|
|
|
NATDEPFILES= fbsd-nat.o fork-child.o inf-ptrace.o ppcfbsd-nat.o bsd-kvm.o |
|
+HAVE_NATIVE_GCORE_HOST = 1 |
|
|
|
LOADLIBES= -lkvm |
|
|
|
Index: gdb-7.6/gdb/config/sparc/fbsd.mh |
|
=================================================================== |
|
--- gdb-7.6.orig/gdb/config/sparc/fbsd.mh 2009-10-26 19:28:15.000000000 +0100 |
|
+++ gdb-7.6/gdb/config/sparc/fbsd.mh 2013-04-26 15:33:01.182049237 +0200 |
|
@@ -2,5 +2,6 @@ |
|
NATDEPFILES= fork-child.o inf-ptrace.o \ |
|
fbsd-nat.o sparc-nat.o sparc64-nat.o sparc64fbsd-nat.o \ |
|
bsd-kvm.o |
|
+HAVE_NATIVE_GCORE_HOST = 1 |
|
|
|
LOADLIBES= -lkvm |
|
Index: gdb-7.6/gdb/config/sparc/sol2.mh |
|
=================================================================== |
|
--- gdb-7.6.orig/gdb/config/sparc/sol2.mh 2012-01-10 17:30:49.000000000 +0100 |
|
+++ gdb-7.6/gdb/config/sparc/sol2.mh 2013-04-26 15:33:01.182049237 +0200 |
|
@@ -3,3 +3,4 @@ NAT_FILE= nm-sol2.h |
|
NATDEPFILES= sparc-sol2-nat.o \ |
|
core-regset.o fork-child.o \ |
|
procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o |
|
+HAVE_NATIVE_GCORE_HOST = 1 |
|
Index: gdb-7.6/gdb/doc/Makefile.in |
|
=================================================================== |
|
--- gdb-7.6.orig/gdb/doc/Makefile.in 2013-04-26 15:32:58.000000000 +0200 |
|
+++ gdb-7.6/gdb/doc/Makefile.in 2013-04-26 15:33:01.183049235 +0200 |
|
@@ -177,11 +177,15 @@ POD2MAN5 = pod2man --center="GNU Develop |
|
--release="gdb-`sed q $(srcdir)/../version.in`" --section=5 |
|
|
|
# List of man pages generated from gdb.texi |
|
-MAN1S = gdb.1 gdbserver.1 |
|
+MAN1S = gdb.1 gdbserver.1 gcore.1 |
|
MAN5S = gdbinit.5 |
|
MANS = $(MAN1S) $(MAN5S) |
|
|
|
-#### Host, target, and site specific Makefile fragments come in here. |
|
+# Host-dependent makefile fragment comes in here. |
|
+@host_makefile_frag@ |
|
+# End of host-dependent makefile fragment |
|
+HAVE_NATIVE_GCORE_TARGET = @HAVE_NATIVE_GCORE_TARGET@ |
|
+ |
|
### |
|
|
|
all: |
|
@@ -269,6 +273,10 @@ install-man: install-man1 install-man5 |
|
install-man1: $(MAN1S) |
|
test -z "$(man1dir)" || $(mkinstalldirs) "$(DESTDIR)$(man1dir)" |
|
@list='$(MAN1S)'; for p in $$list; do \ |
|
+ if test "x$(HAVE_NATIVE_GCORE_TARGET)$(HAVE_NATIVE_GCORE_HOST)" = x \ |
|
+ -a "$$p" = gcore.1; then \ |
|
+ continue; \ |
|
+ fi; \ |
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ |
|
f=`echo $$p | sed -e 's|^.*/||'`; \ |
|
echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(man1dir)/$$f'"; \ |
|
@@ -288,7 +296,13 @@ uninstall-man: uninstall-man1 uninstall- |
|
|
|
uninstall-man1: |
|
@test -n "$(man1dir)" || exit 0; \ |
|
- files=`{ l2='$(MAN1S)'; for i in $$l2; do echo "$$i"; done | \ |
|
+ files=`{ l2='$(MAN1S)'; for i in $$l2; do \ |
|
+ if test "x$(HAVE_NATIVE_GCORE_TARGET)$(HAVE_NATIVE_GCORE_HOST)" = x \ |
|
+ -a "$$i" = gcore.1; then \ |
|
+ continue; \ |
|
+ fi; \ |
|
+ echo "$$i"; \ |
|
+ done | \ |
|
sed -n '/\.1[a-z]*$$/p'; \ |
|
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ |
|
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ |
|
@@ -605,6 +619,13 @@ gdbserver.1: $(GDB_DOC_FILES) |
|
mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1) |
|
rm -f gdbserver.pod |
|
|
|
+gcore.1: $(GDB_DOC_FILES) |
|
+ touch $@ |
|
+ -$(TEXI2POD) $(MANCONF) -Dgcore < $(srcdir)/gdb.texinfo > gcore.pod |
|
+ -($(POD2MAN1) gcore.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \ |
|
+ mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1) |
|
+ rm -f gcore.pod |
|
+ |
|
gdbinit.5: $(GDB_DOC_FILES) |
|
touch $@ |
|
-$(TEXI2POD) $(MANCONF) -Dgdbinit < $(srcdir)/gdb.texinfo > gdbinit.pod |
|
Index: gdb-7.6/gdb/doc/gdb.texinfo |
|
=================================================================== |
|
--- gdb-7.6.orig/gdb/doc/gdb.texinfo 2013-04-26 15:32:58.000000000 +0200 |
|
+++ gdb-7.6/gdb/doc/gdb.texinfo 2013-04-26 15:33:01.191049229 +0200 |
|
@@ -41709,6 +41709,7 @@ switch (die->tag) |
|
@menu |
|
* gdb man:: The GNU Debugger man page |
|
* gdbserver man:: Remote Server for the GNU Debugger man page |
|
+* gcore man:: Generate a core file of a running program |
|
* gdbinit man:: gdbinit scripts |
|
@end menu |
|
|
|
@@ -42230,6 +42231,53 @@ info gdb |
|
should give you access to the complete manual. |
|
|
|
@cite{Using GDB: A Guide to the GNU Source-Level Debugger}, |
|
+Richard M. Stallman and Roland H. Pesch, July 1991. |
|
+@end ifset |
|
+@c man end |
|
+ |
|
+@node gcore man |
|
+@heading gcore |
|
+ |
|
+@c man title gcore Generate a core file of a running program |
|
+ |
|
+@format |
|
+@c man begin SYNOPSIS gcore |
|
+gcore [-o @var{filename}] @var{pid} |
|
+@c man end |
|
+@end format |
|
+ |
|
+@c man begin DESCRIPTION gcore |
|
+Generate a core dump of a running program with process ID @var{pid}. |
|
+Produced file is equivalent to a kernel produced core file as if the process |
|
+crashed (and if @kbd{ulimit -c} were used to set up an appropriate core dump |
|
+limit). Unlike after a crash, after @command{gcore} the program remains |
|
+running without any change. |
|
+@c man end |
|
+ |
|
+@c man begin OPTIONS gcore |
|
+@table @env |
|
+@item -o @var{filename} |
|
+The optional argument |
|
+@var{filename} specifies the file name where to put the core dump. |
|
+If not specified, the file name defaults to @file{core.@var{pid}}, |
|
+where @var{pid} is the running program process ID. |
|
+@end table |
|
+@c man end |
|
+ |
|
+@c man begin SEEALSO gcore |
|
+@ifset man |
|
+The full documentation for @value{GDBN} is maintained as a Texinfo manual. |
|
+If the @code{info} and @code{gdb} programs and @value{GDBN}'s Texinfo |
|
+documentation are properly installed at your site, the command |
|
+ |
|
+@smallexample |
|
+info gdb |
|
+@end smallexample |
|
+ |
|
+@noindent |
|
+should give you access to the complete manual. |
|
+ |
|
+@cite{Using GDB: A Guide to the GNU Source-Level Debugger}, |
|
Richard M. Stallman and Roland H. Pesch, July 1991. |
|
@end ifset |
|
@c man end
|
|
|