[padb-devel] [padb] r212 committed - Re-enable the gdb_retry_count code by default but lower it's cost by r...

codesite-noreply at google.com codesite-noreply at google.com
Tue Sep 8 20:35:47 BST 2009


Revision: 212
Author: apittman
Date: Tue Sep  8 12:34:43 2009
Log: Re-enable the gdb_retry_count code by default but lower it's cost by  
removing the sleep(1).

http://code.google.com/p/padb/source/detail?r=212

Modified:
  /branches/cleanup/src/padb

=======================================
--- /branches/cleanup/src/padb	Tue Sep  8 12:24:56 2009
+++ /branches/cleanup/src/padb	Tue Sep  8 12:34:43 2009
@@ -6223,10 +6223,11 @@
  # main, with code to detach and try again if we don't.  This served us  
well on
  # ia64 where gdb isn't very good however it as on most machines gdb gives
  # you results below main (__libc_start_main()) this test fails which causes
-# padb to loop a number of times for each procees on a node.  For now I've  
left
-# the code to loop here but have set the default gdb_retry_count to zero to
-# disable the code in the simple case.  This option will probably be  
removed
-# completely soon.
+# padb to loop a number of times for each procees on a node.
+# We still sometimes get garbage (due to hand-rolled memcpy()) so leave  
the loop
+# in but don't sleep every iteration.
+# This could be handled better by checking for the presence of one of the
+# stack_strip_below functions in the stack trace.
  sub stack_trace_from_pids {
      my ( $carg, $list ) = @_;

@@ -6278,7 +6279,6 @@
              if ($tries) {
                  debug $vp, "Re-attaching to $pid, $tries";
                  send_cont_signal($pid);
-                sleep(1);
                  my $g = gdb_start();
                  if ( gdb_attach( $g, $pid ) ) {
                      $gdb = $g;
@@ -6322,12 +6322,12 @@
          if ( not defined $threads[0]{id} ) {
              target_error( $vp,
                  'Could not extract stack trace from application' );
-            return;
+            next;
          }

          if ( defined $threads[0]{error} ) {
              target_error( $vp, $threads[0]{error} );
-            return;
+            next;
          }

          foreach my $thread ( sort { $a->{id} <=> $b->{id} } @threads ) {
@@ -7118,7 +7118,7 @@

      # Even if a exception is generated rank output may still exist for that
      # or any other rank on this node, we'll have to see if that causes  
problems
-    # or if it's best to clear the target_key_pait() and output() data for  
this
+    # or if it's best to clear the target_key_pair() and output() data for  
this
      # node/rank.
      if ( defined $allfns{ $cmd->{mode} }{handler_all} ) {
          eval {
@@ -7525,10 +7525,10 @@
          options_i   => {
              stack_shows_params => 0,
              stack_shows_locals => 0,
-            gdb_retry_count    => 0,
+            gdb_retry_count    => 3,
              stack_strip_above =>
  'elan_waitWord,elan_pollWord,elan_deviceCheck,opal_condition_wait,opal_progress',
-            stack_strip_below => 'main',
+            stack_strip_below => 'main,__libc_start_main',
          },
          secondary => [
              {




More information about the padb-devel mailing list