1 /* ------------------------------------------------------------- */
2 /* function to get a stack backtrace on demand with a message */
8 int (*__rt_error
)(void*, void*, const char *, va_list);
11 # define DLL_EXPORT __declspec(dllexport)
16 DLL_EXPORT
int tcc_backtrace(const char *fmt
, ...)
22 void *fp
= __builtin_frame_address(1);
23 void *ip
= __builtin_return_address(0);
25 ret
= __rt_error(fp
, ip
, fmt
, ap
);
29 if (fmt
[0] == '^' && (p
= strchr(fmt
+ 1, fmt
[0])))
32 ret
= vfprintf(stderr
, fmt
, ap
);
34 fprintf(stderr
, "\n"), fflush(stderr
);