rendered paste bodyIndex: mini/mini.c===================================================================--- mini/mini.c (revision 123898)+++ mini/mini.c (working copy)@@ -3123,6 +3123,10 @@ /* The debugger needs all locals to be on the stack or in a global register */ cfg->disable_vreg_to_lvreg = TRUE; + /* Don't remove unused variables when running inside the debugger since the user+ * may still want to view them. */+ cfg->disable_deadce_vars = TRUE;+ // cfg->opt |= MONO_OPT_SHARED; cfg->opt &= ~MONO_OPT_DEADCE; cfg->opt &= ~MONO_OPT_INLINE;Index: mini/mini.h===================================================================--- mini/mini.h (revision 123898)+++ mini/mini.h (working copy)@@ -854,6 +854,7 @@ guint disable_initlocals_opt : 1; guint disable_omit_fp : 1; guint disable_vreg_to_lvreg : 1;+ guint disable_deadce_vars : 1; guint has_got_slots : 1; guint uses_rgctx_reg : 1; guint uses_vtable_reg : 1;Index: mini/ChangeLog===================================================================--- mini/ChangeLog (revision 123898)+++ mini/ChangeLog (working copy)@@ -1,3 +1,16 @@+2009-01-21 Martin Baulig <martin@ximian.com>++ * mini.h+ (MonoCompile): Added `disable_deadce_vars' to disable removing+ unused variables.++ * mini.c+ (mini_method_compile): Set `cfg->disable_deadce_vars' when running+ inside the debugger.++ * liveness.c (mono_analyze_liveness): Don't remove any unused+ variables if `cfg->disable_deadce_vars' is set.+ 2009-01-20 Rodrigo Kumpera <rkumpera@novell.com> * mini-exceptions.c (mono_print_thread_dump): Add informationIndex: mini/liveness.c===================================================================--- mini/liveness.c (revision 123898)+++ mini/liveness.c (working copy)@@ -466,7 +466,7 @@ * VOLATILE, since that would prevent it from being allocated to * registers. */- if (!(cfg->generic_sharing_context && mono_method_signature (cfg->method)->hasthis && cfg->varinfo [vi->idx] == cfg->args [0]))+ if (!cfg->disable_deadce_vars && !(cfg->generic_sharing_context && mono_method_signature (cfg->method)->hasthis && cfg->varinfo [vi->idx] == cfg->args [0])) cfg->varinfo [vi->idx]->flags |= MONO_INST_IS_DEAD; } vi->range.first_use.abs_pos = 0;