about summary refs log tree commit diff
path: root/src/rt/rust_debug.h
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2011-09-23 11:42:20 -0700
committerPatrick Walton <pcwalton@mimiga.net>2011-09-23 11:42:20 -0700
commit61afef29a186513570bcbe4f6dfa635e31d8a610 (patch)
tree7fc02dfa6a72410392a04717098186455c72eb9f /src/rt/rust_debug.h
parentdbdeff659fb30fd845490cf215b5733e1e064d46 (diff)
downloadrust-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.h17
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