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);
}