53static unsigned callback_errors = 0;
82 return f2 (__LINE__) + 1;
88 return f3 (f1line, __LINE__) + 2;
100 fprintf (stderr,
"test1: unexpected return value %d\n", i);
115 uint64_t fail_at = 0;
119 fail_at = atoi (argv[1]);
124 error_callback_full, NULL);
126 exit (
failures ? EXIT_FAILURE : EXIT_SUCCESS);
128#if BACKTRACE_SUPPORTED
133 fprintf (stderr,
"%llu\n", (
long long unsigned)
get_nr_allocs ());
135 exit (
failures ? EXIT_FAILURE : EXIT_SUCCESS);
static int f2(int f1line)
int at_fail_alloc_p(void)
int main(int argc, char **argv)
static int callback_full(void *vdata ATTRIBUTE_UNUSED, uintptr_t pc ATTRIBUTE_UNUSED, const char *filename ATTRIBUTE_UNUSED, int lineno ATTRIBUTE_UNUSED, const char *function ATTRIBUTE_UNUSED)
void set_fail_at_alloc(uint64_t)
uint64_t get_nr_allocs(void)
static int f3(int f1line ATTRIBUTE_UNUSED, int f2line ATTRIBUTE_UNUSED)
#define BACKTRACE_SUPPORTS_THREADS
int backtrace_full(struct backtrace_state *state, int skip, backtrace_full_callback callback, backtrace_error_callback error_callback, void *data)
struct backtrace_state * backtrace_create_state(const char *filename, int threaded, backtrace_error_callback error_callback, void *data)
Functions to help with cleanup.