#include "compiler.h"
#include "vlog.h"
-VLOG_DEFINE_THIS_MODULE(backtrace)
+VLOG_DEFINE_THIS_MODULE(backtrace);
static uintptr_t OVS_UNUSED
get_max_stack(void)
static uintptr_t
stack_low(void)
{
-#ifdef __i386__
- uintptr_t low;
- asm("movl %%esp,%0" : "=g" (low));
+ uintptr_t low = (uintptr_t) &low;
return low;
-#elif __x86_64__
- uintptr_t low;
- asm("movq %%rsp,%0" : "=g" (low));
- return low;
-#else
- /* This causes a warning in GCC that cannot be disabled, so use it only on
- * non-x86. */
- int dummy;
- return (uintptr_t) &dummy;
-#endif
}
static bool
void
backtrace_capture(struct backtrace *backtrace)
{
+#ifdef __GNUC__
void **frame;
size_t n;
backtrace->frames[n++] = (uintptr_t) frame[1];
}
backtrace->n_frames = n;
+#else
+ backtrace->n_frames = 0;
+#endif
}