From 03f0932a6db65859292fb26280dbcb32db392a92 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Fri, 23 Sep 2011 12:26:41 -0700 Subject: [PATCH] rt: ifdef out backtrace() on Windows --- src/rt/rust_debug.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/rt/rust_debug.cpp b/src/rt/rust_debug.cpp index 697f9f13bbc9..e4aa3b2533cf 100644 --- a/src/rt/rust_debug.cpp +++ b/src/rt/rust_debug.cpp @@ -23,20 +23,32 @@ debug::flag track_origins("RUST_TRACK_ORIGINS"); namespace debug { +#ifdef HAVE_BACKTRACE std::string backtrace() { - void *call_stack[256]; - int n_frames = ::backtrace(call_stack, 256); + void *call_stack[128]; + int n_frames = ::backtrace(call_stack, 128); char **syms = backtrace_symbols(call_stack, n_frames); + std::cerr << "n_frames: " << n_frames << std::endl; + std::stringstream ss; - for (int i = 0; i < n_frames; i++) + for (int i = 0; i < n_frames; i++) { + std::cerr << syms[i] << std::endl; ss << syms[i] << std::endl; + } free(syms); return ss.str(); } +#else +std::string +backtrace() { + std::string s; + return s; +} +#endif void maybe_track_origin(rust_task *task, void *ptr) {