#define UNW_LOCAL_ONLY #include unsigned long long traverse_callstack (void) { unw_cursor_t cursor; unw_context_t uc; if (unw_getcontext(&uc) < 0) return 0; if (unw_init_local(&cursor, &uc)) return 0; while (1) if (unw_step (&cursor) <= 0) return 1; return 0; } int main(int argc, char **argv) { traverse_callstack (); }