Mailinglist Archive: opensuse-commit (1124 mails)

< Previous Next >
commit gdb
  • From: root@xxxxxxxxxxxxxxx (h_root)
  • Date: Thu, 12 Apr 2007 17:24:26 +0200
  • Message-id: <20070412152426.A13D467817D@xxxxxxxxxxxxxxx>

Hello community,

here is the log from the commit of package gdb
checked in at Thu Apr 12 17:24:26 CEST 2007.

--------
--- gdb/gdb.changes     2007-04-01 21:33:03.000000000 +0200
+++ /mounts/work_src_done/STABLE/gdb/gdb.changes        2007-04-11 18:01:36.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Apr 11 17:16:45 CEST 2007 - schwab@xxxxxxx
+
+- Handle non-threaded processes in gstack [#262694].
+
+-------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gdb.spec ++++++
--- /var/tmp/diff_new_pack.jq8375/_old  2007-04-12 17:23:56.000000000 +0200
+++ /var/tmp/diff_new_pack.jq8375/_new  2007-04-12 17:23:56.000000000 +0200
@@ -21,7 +21,7 @@
 Autoreqprov:    on
 PreReq:         %{install_info_prereq}
 Version:        6.6
-Release:        26
+Release:        29
 Summary:        The GNU Debugger
 Source:         gdb-%{version}.tar.bz2
 Patch1:         gdb-misc.patch
@@ -151,6 +151,8 @@
 %endif
 
 %changelog
+* Wed Apr 11 2007 - schwab@xxxxxxx
+- Handle non-threaded processes in gstack [#262694].
 * Sun Apr 01 2007 - schwab@xxxxxxx
 - Properly decode CR register number.
 * Thu Mar 29 2007 - schwab@xxxxxxx

++++++ gstack.patch ++++++
--- /var/tmp/diff_new_pack.jq8375/_old  2007-04-12 17:23:57.000000000 +0200
+++ /var/tmp/diff_new_pack.jq8375/_new  2007-04-12 17:23:57.000000000 +0200
@@ -4,37 +4,6 @@
        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 <process-id>" 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 <<EOF 2>&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 @@
@@ -55,14 +24,14 @@
 +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) ; \
++      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)
@@ -78,12 +47,60 @@
 +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)
++      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
+--- /dev/null  2005-04-09 23:51:05.027867440 -0400
++++ gdb/gstack.sh      2005-04-08 18:00:49.000000000 -0400
+@@ -0,0 +1,45 @@
++#!/bin/sh
++
++if test $# -ne 1; then
++    echo "Usage: `basename $0 .sh` <process-id>" 1>&2
++    exit 1
++fi
++
++if test ! -r /proc/$1; then
++    echo "Process $1 not found." 1>&2
++    exit 1
++fi
++
++# GDB doesn't allow "thread apply all bt" when the process isn't
++# threaded; need to peek at the process to determine if that or the
++# simpler "bt" should be used.
++
++backtrace="bt"
++if test -d /proc/$1/task ; then
++    # Newer kernel; has a task/ directory.
++    if test `ls /proc/$1/task | wc -l` -gt 1 2>/dev/null ; then
++      backtrace="thread apply all bt"
++    fi
++elif test -f /proc/$1/maps ; then
++    # Older kernel; go by it loading libpthread.
++    if grep -e libpthread /proc/$1/maps > /dev/null 2>&1 ; then
++      backtrace="thread apply all bt"
++    fi
++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 <<EOF 2>&1 | 
++$backtrace
++EOF
++sed -n \
++    -e 's/^(gdb) //' \
++    -e '/^#/p' \
++    -e '/^Thread/p'


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-commit+help@xxxxxxxxxxxx

< Previous Next >
This Thread