2004-11-23 Andrew Cagney * Makefile.in (uninstall-gstack, install-gstack): New rules, add to install and uninstall. * gstack.sh: New file. --- gdb/gstack.sh 1969-12-31 19:00:00.000000000 -0500 +++ gdb/gstack.sh 2004-11-23 13:34:48.000000000 -0500 @@ -0,0 +1,28 @@ +#!/bin/sh + +if test $# -ne 1; then + echo "Usage: $0 " 1>&2 + exit 1 +fi + +if test ! -r /proc/$1; then + echo "Process $1 not found." 1>&2 + exit 1 +fi + +GDB=${GDB:-gdb} + +if $GDB -nx --quiet --batch --readnever > /dev/null 2>&1; then + readnever=--readnever +else + readnever= +fi + +# Run GDB, strip out unwanted noise. +$GDB --quiet $readnever -nx /proc/$1/exe $1 <&1 | +thread apply all bt +EOF +sed -n \ + -e 's/^(gdb) //' \ + -e '/^#/p' \ + -e '/^Thread/p' --- gdb/Makefile.in 2004-11-23 13:31:03.000000000 -0500 +++ gdb/Makefile.in 2004-11-23 15:06:34.623389592 -0500 @@ -970,7 +970,7 @@ # time it takes for make to check that all is up to date. # install-only is intended to address that need. install: all install-only -install-only: $(CONFIG_INSTALL) +install-only: install-gstack $(CONFIG_INSTALL) transformed_name=`t='$(program_transform_name)'; \ echo gdb | sed -e "$$t"` ; \ if test "x$$transformed_name" = x; then \ @@ -1002,9 +1002,22 @@ $(DESTDIR)$(man1dir) ; \ $(INSTALL_DATA) $(srcdir)/gdb.1 \ $(DESTDIR)$(man1dir)/$$transformed_name.1 +GSTACK=gstack +.PHONY: install-gstack +install-gstack: + transformed_name=`t='$(program_transform_name)'; \ + echo $(GSTACK) | sed -e "$$t"` ; \ + if test "x$$transformed_name" = x; then \ + transformed_name=$(GSTACK) ; \ + else \ + true ; \ + fi ; \ + $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(bindir) ; \ + $(INSTALL_PROGRAM) $(srcdir)/$(GSTACK).sh \ + $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) ; \ -uninstall: force $(CONFIG_UNINSTALL) +uninstall: force uninstall-gstack $(CONFIG_UNINSTALL) transformed_name=`t='$(program_transform_name)'; \ echo gdb | sed -e $$t` ; \ if test "x$$transformed_name" = x; then \ @@ -1026,6 +1043,16 @@ fi ; \ rm -f $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) \ $(DESTDIR)$(man1dir)/$$transformed_name.1 +.PHONY: uninstall-gstack +uninstall-gstack: + transformed_name=`t='$(program_transform_name)'; \ + echo $(GSTACK) | sed -e $$t` ; \ + if test "x$$transformed_name" = x; then \ + transformed_name=$(GSTACK) ; \ + else \ + true ; \ + fi ; \ + rm -f $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) # We do this by grepping through sources. If that turns out to be too slow, # maybe we could just require every .o file to have an initialization routine