diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2011-09-23 11:42:20 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2011-09-23 11:42:20 -0700 |
| commit | 61afef29a186513570bcbe4f6dfa635e31d8a610 (patch) | |
| tree | 7fc02dfa6a72410392a04717098186455c72eb9f /src/rt/rust_debug.h | |
| parent | dbdeff659fb30fd845490cf215b5733e1e064d46 (diff) | |
| download | rust-61afef29a186513570bcbe4f6dfa635e31d8a610.tar.gz rust-61afef29a186513570bcbe4f6dfa635e31d8a610.zip | |
rt: Add a RUST_TRACK_ORIGINS debug flag to help track down memory corruption
Diffstat (limited to 'src/rt/rust_debug.h')
| -rw-r--r-- | src/rt/rust_debug.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/rt/rust_debug.h b/src/rt/rust_debug.h index f7c444324f7..da9838ba341 100644 --- a/src/rt/rust_debug.h +++ b/src/rt/rust_debug.h @@ -3,8 +3,12 @@ #ifndef RUST_DEBUG_H #define RUST_DEBUG_H +#include <map> +#include <string> #include <cstdlib> +struct rust_task; + namespace debug { class flag { @@ -27,6 +31,19 @@ public: } }; +class task_debug_info { +public: + std::map<void *,std::string> origins; +}; + +std::string backtrace(); + +void maybe_track_origin(rust_task *task, void *ptr); +void maybe_untrack_origin(rust_task *task, void *ptr); + +// This function is intended to be called by the debugger. +void dump_origin(rust_task *task, void *ptr); + } // end namespace debug #endif |
