From 7ccdb883748a66122b88663139920db4f15a6920 Mon Sep 17 00:00:00 2001 From: Roy Frostig Date: Tue, 24 Aug 2010 19:49:39 -0700 Subject: Add support in dbg.debug_obj for printing the obj body. --- src/lib/dbg.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src/lib') diff --git a/src/lib/dbg.rs b/src/lib/dbg.rs index 195a693a..3aaf3add 100644 --- a/src/lib/dbg.rs +++ b/src/lib/dbg.rs @@ -9,7 +9,7 @@ native "rust" mod rustrt { fn debug_opaque[T](&T x); fn debug_box[T](@T x); fn debug_tag[T](&T x); - fn debug_obj[T](&T x, uint nmethods); + fn debug_obj[T](&T x, uint nmethods, uint nbytes); fn debug_fn[T](&T x); } @@ -33,8 +33,17 @@ fn debug_tag[T](&T x) { rustrt.debug_tag[T](x); } -fn debug_obj[T](&T x, uint nmethods) { - rustrt.debug_obj[T](x, nmethods); +/** + * `nmethods` is the number of methods we expect the object to have. The + * runtime will print this many words of the obj vtbl). + * + * `nbytes` is the number of bytes of body data we expect the object to have. + * The runtime will print this many bytes of the obj body. You probably want + * this to at least be 4u, since an implicit captured tydesc pointer sits in + * the front of any obj's data tuple.x + */ +fn debug_obj[T](&T x, uint nmethods, uint nbytes) { + rustrt.debug_obj[T](x, nmethods, nbytes); } fn debug_fn[T](&T x) { -- cgit v1.2.3