runtime: Remove confusion about split stack functions in backtrace.
authorIan Lance Taylor <ian@gcc.gnu.org>
Thu, 31 Jan 2013 19:44:24 +0000 (19:44 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Thu, 31 Jan 2013 19:44:24 +0000 (19:44 +0000)
From-SVN: r195627

libgo/runtime/go-callers.c

index 2154a8ae4af6fa3084dc4188b91b3afb576d5f46..b6c494cb3466b674a951245798fd6832414bd4aa 100644 (file)
@@ -16,6 +16,7 @@
 struct callers_data
 {
   Location *locbuf;
+  int skip;
   int index;
   int max;
 };
@@ -41,6 +42,12 @@ callback (void *data, uintptr_t pc, const char *filename, int lineno,
        return 0;
     }
 
+  if (arg->skip > 0)
+    {
+      --arg->skip;
+      return 0;
+    }
+
   loc = &arg->locbuf[arg->index];
   loc->pc = pc;
 
@@ -75,10 +82,11 @@ runtime_callers (int32 skip, Location *locbuf, int32 m)
   struct callers_data data;
 
   data.locbuf = locbuf;
+  data.skip = skip + 1;
   data.index = 0;
   data.max = m;
-  backtrace_full (__go_get_backtrace_state (), skip + 1, callback,
-                 error_callback, &data);
+  backtrace_full (__go_get_backtrace_state (), 0, callback, error_callback,
+                 &data);
   return data.index;
 }