From b292c7831823605b02a564b0a9274f95141c92ee Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Thu, 11 Apr 2013 14:13:44 +0000 Subject: [PATCH] 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. --- gdb/ChangeLog | 24 +++++++++++++++++ gdb/Makefile.in | 30 ++++++++++++++++++++- gdb/NEWS | 3 +++ gdb/config/alpha/alpha-osf3.mh | 1 + gdb/config/i386/fbsd.mh | 1 + gdb/config/i386/fbsd64.mh | 1 + gdb/config/i386/i386gnu.mh | 1 + gdb/config/i386/i386sol2.mh | 1 + gdb/config/i386/sol2-64.mh | 1 + gdb/config/mips/irix5.mh | 1 + gdb/config/mips/irix6.mh | 1 + gdb/config/powerpc/fbsd.mh | 1 + gdb/config/sparc/fbsd.mh | 1 + gdb/config/sparc/sol2.mh | 1 + gdb/configure | 28 ++++++++++++++++++++ gdb/configure.ac | 22 ++++++++++++++++ gdb/configure.tgt | 12 +++++++++ gdb/doc/ChangeLog | 10 +++++++ gdb/doc/Makefile.in | 27 ++++++++++++++++--- gdb/doc/gdb.texinfo | 48 ++++++++++++++++++++++++++++++++++ gdb/{gdb_gcore.sh => gcore.in} | 9 +++---- 21 files changed, 215 insertions(+), 9 deletions(-) rename gdb/{gdb_gcore.sh => gcore.in} (87%) mode change 100755 => 100644 diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0eb03ce95b3..0e65461591c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,27 @@ +2013-04-11 Jan Kratochvil + Pedro Alves + + * 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 * remote.c (unpush_and_perror): Add output message final dot. diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 0814bcb13ff..ebe6eb75948 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -418,6 +418,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. @@ -968,7 +969,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) $< @@ -1044,6 +1045,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: @@ -1059,6 +1073,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. @@ -1303,6 +1328,9 @@ data-directory/Makefile: data-directory/Makefile.in config.status @frags@ 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 \ diff --git a/gdb/NEWS b/gdb/NEWS index 86716e0f866..43f41dc5d0f 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -19,6 +19,9 @@ show remote trace-status-packet * The command 'tsave' can now support new option '-ctf' to save trace buffer in Common Trace Format. +* Newly installed $prefix/bin/gcore acts as a shell interface for the + GDB command gcore. + * MI changes ** The -trace-save MI command can optionally save trace buffer in Common diff --git a/gdb/config/alpha/alpha-osf3.mh b/gdb/config/alpha/alpha-osf3.mh index 483ef782768..aa63dc465e9 100644 --- a/gdb/config/alpha/alpha-osf3.mh +++ b/gdb/config/alpha/alpha-osf3.mh @@ -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 diff --git a/gdb/config/i386/fbsd.mh b/gdb/config/i386/fbsd.mh index 05ac5bbad26..2c9cd9af4ee 100644 --- a/gdb/config/i386/fbsd.mh +++ b/gdb/config/i386/fbsd.mh @@ -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 diff --git a/gdb/config/i386/fbsd64.mh b/gdb/config/i386/fbsd64.mh index 3f43727311f..c719a17b208 100644 --- a/gdb/config/i386/fbsd64.mh +++ b/gdb/config/i386/fbsd64.mh @@ -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 diff --git a/gdb/config/i386/i386gnu.mh b/gdb/config/i386/i386gnu.mh index d85744b4f0a..a3ea122b6d7 100644 --- a/gdb/config/i386/i386gnu.mh +++ b/gdb/config/i386/i386gnu.mh @@ -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 diff --git a/gdb/config/i386/i386sol2.mh b/gdb/config/i386/i386sol2.mh index dcf5a79c1e6..2f7c3c5f089 100644 --- a/gdb/config/i386/i386sol2.mh +++ b/gdb/config/i386/i386sol2.mh @@ -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 diff --git a/gdb/config/i386/sol2-64.mh b/gdb/config/i386/sol2-64.mh index bfb69801eb6..7a8304d6dfe 100644 --- a/gdb/config/i386/sol2-64.mh +++ b/gdb/config/i386/sol2-64.mh @@ -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 diff --git a/gdb/config/mips/irix5.mh b/gdb/config/mips/irix5.mh index 7ab5e111699..d5740d0e469 100644 --- a/gdb/config/mips/irix5.mh +++ b/gdb/config/mips/irix5.mh @@ -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 diff --git a/gdb/config/mips/irix6.mh b/gdb/config/mips/irix6.mh index 28a67eb4888..098df2e42f4 100644 --- a/gdb/config/mips/irix6.mh +++ b/gdb/config/mips/irix6.mh @@ -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 diff --git a/gdb/config/powerpc/fbsd.mh b/gdb/config/powerpc/fbsd.mh index 746b2869985..48ea9029804 100644 --- a/gdb/config/powerpc/fbsd.mh +++ b/gdb/config/powerpc/fbsd.mh @@ -18,6 +18,7 @@ # along with this program. If not, see . */ NATDEPFILES= fbsd-nat.o fork-child.o inf-ptrace.o ppcfbsd-nat.o bsd-kvm.o +HAVE_NATIVE_GCORE_HOST = 1 LOADLIBES= -lkvm diff --git a/gdb/config/sparc/fbsd.mh b/gdb/config/sparc/fbsd.mh index ad36ee6c81d..2774efb6403 100644 --- a/gdb/config/sparc/fbsd.mh +++ b/gdb/config/sparc/fbsd.mh @@ -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 diff --git a/gdb/config/sparc/sol2.mh b/gdb/config/sparc/sol2.mh index 9f915833135..c6cabd2439f 100644 --- a/gdb/config/sparc/sol2.mh +++ b/gdb/config/sparc/sol2.mh @@ -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 diff --git a/gdb/configure b/gdb/configure index 6588c728823..f9d9a1745b4 100755 --- a/gdb/configure +++ b/gdb/configure @@ -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 LTLIBBABELTRACE LIBBABELTRACE @@ -684,6 +686,7 @@ AWK REPORT_BUGS_TEXI REPORT_BUGS_TO PKGVERSION +HAVE_NATIVE_GCORE_TARGET TARGET_OBS subdirs GDB_DATADIR @@ -5083,6 +5086,7 @@ fi TARGET_OBS= all_targets= +HAVE_NATIVE_GCORE_TARGET= for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'` do @@ -5117,6 +5121,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 @@ -5179,6 +5189,7 @@ fi + # For other settings, only the main target counts. gdb_sim= gdb_osabi= @@ -14648,6 +14659,21 @@ ac_config_links="$ac_config_links $ac_config_links_1" $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" @@ -15358,6 +15384,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" ;; @@ -15979,6 +16006,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;} 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) diff --git a/gdb/configure.ac b/gdb/configure.ac index 149ac37c83c..ce6fa7a8a7e 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -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= @@ -2390,6 +2398,20 @@ dnl At the moment, we just assume it's UTF-8. 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 diff --git a/gdb/configure.tgt b/gdb/configure.tgt index c6357d2a3a0..51fe87c620f 100644 --- a/gdb/configure.tgt +++ b/gdb/configure.tgt @@ -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-*-openbsd*) ;; *-*-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 diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index e55b219ea05..d62a5a69c40 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,13 @@ +2013-04-11 Jan Kratochvil + + * 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 * gdb.texinfo (Process Record and Replay): Document that "set diff --git a/gdb/doc/Makefile.in b/gdb/doc/Makefile.in index 70086a31e81..fdd57d65516 100644 --- a/gdb/doc/Makefile.in +++ b/gdb/doc/Makefile.in @@ -177,11 +177,15 @@ POD2MAN5 = pod2man --center="GNU Development Tools" \ --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-man5 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 diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 15a889491f2..97d88ec6c31 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -41652,6 +41652,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 @@ -42177,6 +42178,53 @@ 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 + @node gdbinit man @heading gdbinit diff --git a/gdb/gdb_gcore.sh b/gdb/gcore.in old mode 100755 new mode 100644 similarity index 87% rename from gdb/gdb_gcore.sh rename to gdb/gcore.in index 38548f2ad69..9c5b14df744 --- a/gdb/gdb_gcore.sh +++ b/gdb/gcore.in @@ -16,14 +16,13 @@ # along with this program. If not, see . # -# 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" + echo "usage: @GCORE_TRANSFORM_NAME@ [-o filename] pid" exit 2 fi @@ -35,7 +34,7 @@ then if [ "$#" -lt "3" ] then # Not enough arguments. - echo "usage: gcore [-o filename] pid" + echo "usage: @GCORE_TRANSFORM_NAME@ [-o filename] pid" exit 2 fi name=$2 @@ -52,14 +51,14 @@ for pid in $* do # `