void DoDispose()
{
if (!is_forked) {
if (architecture != null) {
architecture.Dispose ();
architecture = null;
}
if (mono_language != null) {
mono_language.Dispose();
mono_language = null;
}
if (native_language != null) {
native_language.Dispose ();
native_language = null;
}
if (os != null) {
os.Dispose ();
os = null;
}
if (symtab_manager != null) {
symtab_manager.Dispose ();
symtab_manager = null;
}
}
if (breakpoint_manager != null) {
breakpoint_manager.Dispose ();
breakpoint_manager = null;
}
if (thread_db != null) {
thread_db.Dispose ();
thread_db = null;
}
if (thread_lock_mutex != null) {
thread_lock_mutex.Dispose ();
thread_lock_mutex = null;
}
exception_handlers = null;
manager.RemoveProcess (this);
}