Commit 7af190f1 by Ian Lance Taylor

runtime: Do not report thunks and recover functions in backtrace.

From-SVN: r203294
parent 8ae4c35c
...@@ -53,6 +53,21 @@ callback (void *data, uintptr_t pc, const char *filename, int lineno, ...@@ -53,6 +53,21 @@ callback (void *data, uintptr_t pc, const char *filename, int lineno,
return 0; return 0;
} }
/* Skip thunks and recover functions. There is no equivalent to
these functions in the gc toolchain, so returning them here means
significantly different results for runtime.Caller(N). */
if (function != NULL)
{
const char *p;
p = __builtin_strchr (function, '.');
if (p != NULL && __builtin_strncmp (p + 1, "$thunk", 6) == 0)
return 0;
p = __builtin_strrchr (function, '$');
if (p != NULL && __builtin_strcmp(p, "$recover") == 0)
return 0;
}
if (arg->skip > 0) if (arg->skip > 0)
{ {
--arg->skip; --arg->skip;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment