Patch: fix gdb_gcore.sh failure in ash/dash

Daniel Jacobowitz drow@false.org
Mon Sep 26 01:52:00 GMT 2005


On Sat, Sep 17, 2005 at 06:26:49PM -0400, Daniel Jacobowitz wrote:
> 2005-09-17  Daniel Jacobowitz  <dan@codesourcery.com>
> 
> 	* gdb_gcore.sh: Use a temporary file.  Use gdb from $PATH.

Did you have any comments on the revised patch, Mark?  Otherwise I'll
check this in.

> Index: gdb_gcore.sh
> ===================================================================
> RCS file: /big/fsf/rsync/src/src/gdb/gdb_gcore.sh,v
> retrieving revision 1.1
> diff -u -p -r1.1 gdb_gcore.sh
> --- gdb_gcore.sh	17 Apr 2003 20:33:09 -0000	1.1
> +++ gdb_gcore.sh	17 Sep 2005 22:26:10 -0000
> @@ -1,6 +1,6 @@
>  #!/bin/sh
>  
> -#   Copyright 2003  Free Software Foundation, Inc.
> +#   Copyright 2003, 2005  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
> @@ -16,9 +16,6 @@
>  # 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
> -
>  #
>  # gcore.sh
>  # Script to generate a core file of a running program.
> @@ -48,6 +45,17 @@ then
>      shift; shift
>  fi
>  
> +# Create a temporary file.  Use mktemp if available, but cope if it is not.
> +tmpfile=`mktemp ${name}.XXXXXX 2>/dev/null` || {
> +  tmpfile=${name}.$$
> +  if test -e $tmpfile; then
> +    echo "Could not create temporary file $tmpfile"
> +    exit 1
> +  fi
> +  touch $tmpfile
> +}
> +trap "rm -f $tmpfile" EXIT
> +
>  # Initialise return code.
>  rc=0
>  
> @@ -55,17 +63,15 @@ rc=0
>  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
> +	cat >>$tmpfile <<EOF
> +attach $pid
> +gcore $name.$pid
> +detach
> +quit
>  EOF
>  
> +	gdb -x $tmpfile -batch
> +
>  	if [ -r $name.$pid ] ; then 
>  	    rc=0
>  	else
> @@ -78,4 +84,3 @@ EOF
>  done
>  
>  exit $rc
> -
> 

-- 
Daniel Jacobowitz
CodeSourcery, LLC



More information about the Gdb-patches mailing list