@@ -16,6 +16,7 @@
struct callers_data
{
Location *locbuf;
+ int skip;
int index;
int max;
};
@@ -41,6 +42,12 @@
return 0;
}
+ if (arg->skip > 0)
+ {
+ --arg->skip;
+ return 0;
+ }
+
loc = &arg->locbuf[arg->index];
loc->pc = pc;
@@ -75,10 +82,11 @@
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;
}