protected void LoadSession(XPathNavigator nav)
{
XPathNodeIterator session_iter = nav.Select (
"/DebuggerConfiguration/DebuggerSession[@name='" + Name + "']");
if (!session_iter.MoveNext ())
throw new InternalError ();
XPathNodeIterator group_iter = nav.Select (
"/DebuggerConfiguration/ModuleGroups/ModuleGroup");
while (group_iter.MoveNext ()) {
string name = group_iter.Current.GetAttribute ("name", "");
ModuleGroup group = Config.CreateModuleGroup (name);
group.SetSessionData (group_iter);
}
XPathNodeIterator modules_iter = session_iter.Current.Select ("Modules/*");
while (modules_iter.MoveNext ()) {
string name = modules_iter.Current.GetAttribute ("name", "");
string group = modules_iter.Current.GetAttribute ("group", "");
Module module = (Module) modules [name];
if (module == null) {
ModuleGroup mgroup = Config.GetModuleGroup (group);
module = new Module (mgroup, name, null);
modules.Add (name, module);
}
module.SetSessionData (modules_iter);
}
XPathNodeIterator event_iter = session_iter.Current.Select ("Events/*");
LoadEvents (event_iter);
XPathNodeIterator display_iter = session_iter.Current.Select ("Displays/*");
LoadDisplays (display_iter);
}