Commits

Mathias Kluba  committed a1c0cc6

First commit

  • Participants

Comments (0)

Files changed (32)

+bin
+obj
+_ReSharper*
+.suo

File CdbEventArgs.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace SOS.Net
+{
+    public class CdbEventArgs : EventArgs
+    {
+        public string Output { get; private set; }
+
+        public string Intput { get; private set; }
+
+        public CdbEventArgs(string input, string output)
+        {
+            this.Output = output;
+            this.Intput = input;
+        }
+    }
+}

File FormMain.Designer.cs

+namespace SOS.Net
+{
+    partial class FormMain
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.components = new System.ComponentModel.Container();
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormMain));
+            this.tabControlMain = new System.Windows.Forms.TabControl();
+            this.tabPageProcesses = new System.Windows.Forms.TabPage();
+            this.listViewProcesses = new System.Windows.Forms.ListView();
+            this.columnHeaderProcessId = new System.Windows.Forms.ColumnHeader();
+            this.columnHeaderProcessName = new System.Windows.Forms.ColumnHeader();
+            this.columnHeaderProcessPath = new System.Windows.Forms.ColumnHeader();
+            this.panelSearchProcesses = new System.Windows.Forms.Panel();
+            this.textBoxSearchProcesses = new System.Windows.Forms.TextBox();
+            this.labelSearchProcesses = new System.Windows.Forms.Label();
+            this.tabPageAppDomain = new System.Windows.Forms.TabPage();
+            this.listViewAppDomains = new System.Windows.Forms.ListView();
+            this.columnHeaderAppDomainAddress = new System.Windows.Forms.ColumnHeader();
+            this.columnHeaderAppDomainName = new System.Windows.Forms.ColumnHeader();
+            this.tabPageAssemblies = new System.Windows.Forms.TabPage();
+            this.listViewAssemblies = new System.Windows.Forms.ListView();
+            this.columnHeaderAssemblyAddress = new System.Windows.Forms.ColumnHeader();
+            this.columnHeaderAssemblyName = new System.Windows.Forms.ColumnHeader();
+            this.tabPageTypes = new System.Windows.Forms.TabPage();
+            this.listViewHeap = new System.Windows.Forms.ListView();
+            this.columnHeaderHeapAddress = new System.Windows.Forms.ColumnHeader();
+            this.columnHeaderHeapInstanceCount = new System.Windows.Forms.ColumnHeader();
+            this.columnHeaderHeapTotalSize = new System.Windows.Forms.ColumnHeader();
+            this.columnHeaderHeapTypeName = new System.Windows.Forms.ColumnHeader();
+            this.panelTypeSearch = new System.Windows.Forms.Panel();
+            this.textBoxTypeSearch = new System.Windows.Forms.TextBox();
+            this.labelTypeSearch = new System.Windows.Forms.Label();
+            this.tabPageInstances = new System.Windows.Forms.TabPage();
+            this.splitContainerInstance = new System.Windows.Forms.SplitContainer();
+            this.listViewInstances = new System.Windows.Forms.ListView();
+            this.columnHeaderInstanceAddress = new System.Windows.Forms.ColumnHeader();
+            this.columnHeaderInstanceSite = new System.Windows.Forms.ColumnHeader();
+            this.splitContainerObjectDumpDetails = new System.Windows.Forms.SplitContainer();
+            this.listViewObjectDump = new System.Windows.Forms.ListView();
+            this.columnHeaderObjectDumpField = new System.Windows.Forms.ColumnHeader();
+            this.columnHeaderObjectDumpType = new System.Windows.Forms.ColumnHeader();
+            this.columnHeaderObjectDumpAttribut = new System.Windows.Forms.ColumnHeader();
+            this.columnHeaderObjectDumpValue = new System.Windows.Forms.ColumnHeader();
+            this.columnHeaderObjectDumpName = new System.Windows.Forms.ColumnHeader();
+            this.listViewFieldArray = new System.Windows.Forms.ListView();
+            this.columnHeaderFieldArrayNumber = new System.Windows.Forms.ColumnHeader();
+            this.columnHeaderFieldArrayAddress = new System.Windows.Forms.ColumnHeader();
+            this.panelObjectDumpDetails = new System.Windows.Forms.Panel();
+            this.textBoxObjectDumpToString = new System.Windows.Forms.TextBox();
+            this.textBoxObjectDumpSize = new System.Windows.Forms.TextBox();
+            this.textBoxObjectDumpType = new System.Windows.Forms.TextBox();
+            this.labelObjectDumpToString = new System.Windows.Forms.Label();
+            this.labelObjectDumpTrueSize = new System.Windows.Forms.Label();
+            this.labelObjectDumpTypeName = new System.Windows.Forms.Label();
+            this.flowLayoutPanelBreadcrumb = new System.Windows.Forms.FlowLayoutPanel();
+            this.tabPageThreads = new System.Windows.Forms.TabPage();
+            this.tabPageOutput = new System.Windows.Forms.TabPage();
+            this.textBoxCdbInput = new System.Windows.Forms.TextBox();
+            this.textBoxCdbOuput = new System.Windows.Forms.TextBox();
+            this.tabPageSettings = new System.Windows.Forms.TabPage();
+            this.tableLayoutPanelSettings = new System.Windows.Forms.TableLayoutPanel();
+            this.labelCdbPath = new System.Windows.Forms.Label();
+            this.textBoxCBDPath = new System.Windows.Forms.TextBox();
+            this.labelSosexPath = new System.Windows.Forms.Label();
+            this.textBoxSosexPath = new System.Windows.Forms.TextBox();
+            this.textBoxSosexInfo = new System.Windows.Forms.TextBox();
+            this.toolStripSettings = new System.Windows.Forms.ToolStrip();
+            this.toolStripSplitButtonRefresh = new System.Windows.Forms.ToolStripSplitButton();
+            this.processesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.appDomainsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.assembliesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.typesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.toolStripButtonAttach = new System.Windows.Forms.ToolStripButton();
+            this.toolStripButtonDetach = new System.Windows.Forms.ToolStripButton();
+            this.toolStripButtonSaveSettings = new System.Windows.Forms.ToolStripButton();
+            this.timerFilter = new System.Windows.Forms.Timer(this.components);
+            this.timerTypeFilter = new System.Windows.Forms.Timer(this.components);
+            this.tabControlMain.SuspendLayout();
+            this.tabPageProcesses.SuspendLayout();
+            this.panelSearchProcesses.SuspendLayout();
+            this.tabPageAppDomain.SuspendLayout();
+            this.tabPageAssemblies.SuspendLayout();
+            this.tabPageTypes.SuspendLayout();
+            this.panelTypeSearch.SuspendLayout();
+            this.tabPageInstances.SuspendLayout();
+            this.splitContainerInstance.Panel1.SuspendLayout();
+            this.splitContainerInstance.Panel2.SuspendLayout();
+            this.splitContainerInstance.SuspendLayout();
+            this.splitContainerObjectDumpDetails.Panel1.SuspendLayout();
+            this.splitContainerObjectDumpDetails.Panel2.SuspendLayout();
+            this.splitContainerObjectDumpDetails.SuspendLayout();
+            this.panelObjectDumpDetails.SuspendLayout();
+            this.tabPageOutput.SuspendLayout();
+            this.tabPageSettings.SuspendLayout();
+            this.tableLayoutPanelSettings.SuspendLayout();
+            this.toolStripSettings.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // tabControlMain
+            // 
+            this.tabControlMain.Controls.Add(this.tabPageProcesses);
+            this.tabControlMain.Controls.Add(this.tabPageAppDomain);
+            this.tabControlMain.Controls.Add(this.tabPageAssemblies);
+            this.tabControlMain.Controls.Add(this.tabPageTypes);
+            this.tabControlMain.Controls.Add(this.tabPageInstances);
+            this.tabControlMain.Controls.Add(this.tabPageThreads);
+            this.tabControlMain.Controls.Add(this.tabPageOutput);
+            this.tabControlMain.Controls.Add(this.tabPageSettings);
+            this.tabControlMain.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.tabControlMain.Location = new System.Drawing.Point(0, 25);
+            this.tabControlMain.Name = "tabControlMain";
+            this.tabControlMain.SelectedIndex = 0;
+            this.tabControlMain.Size = new System.Drawing.Size(959, 635);
+            this.tabControlMain.TabIndex = 0;
+            this.tabControlMain.SelectedIndexChanged += new System.EventHandler(this.tabControlMain_SelectedIndexChanged);
+            // 
+            // tabPageProcesses
+            // 
+            this.tabPageProcesses.Controls.Add(this.listViewProcesses);
+            this.tabPageProcesses.Controls.Add(this.panelSearchProcesses);
+            this.tabPageProcesses.Location = new System.Drawing.Point(4, 22);
+            this.tabPageProcesses.Name = "tabPageProcesses";
+            this.tabPageProcesses.Padding = new System.Windows.Forms.Padding(3);
+            this.tabPageProcesses.Size = new System.Drawing.Size(951, 609);
+            this.tabPageProcesses.TabIndex = 2;
+            this.tabPageProcesses.Text = "Processes";
+            this.tabPageProcesses.UseVisualStyleBackColor = true;
+            // 
+            // listViewProcesses
+            // 
+            this.listViewProcesses.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+            this.listViewProcesses.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+            this.columnHeaderProcessId,
+            this.columnHeaderProcessName,
+            this.columnHeaderProcessPath});
+            this.listViewProcesses.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.listViewProcesses.FullRowSelect = true;
+            this.listViewProcesses.GridLines = true;
+            this.listViewProcesses.HideSelection = false;
+            this.listViewProcesses.Location = new System.Drawing.Point(3, 32);
+            this.listViewProcesses.MultiSelect = false;
+            this.listViewProcesses.Name = "listViewProcesses";
+            this.listViewProcesses.Size = new System.Drawing.Size(945, 574);
+            this.listViewProcesses.TabIndex = 0;
+            this.listViewProcesses.UseCompatibleStateImageBehavior = false;
+            this.listViewProcesses.View = System.Windows.Forms.View.Details;
+            this.listViewProcesses.SelectedIndexChanged += new System.EventHandler(this.listViewProcesses_SelectedIndexChanged);
+            this.listViewProcesses.DoubleClick += new System.EventHandler(this.listViewProcesses_DoubleClick);
+            // 
+            // columnHeaderProcessId
+            // 
+            this.columnHeaderProcessId.Text = "PID";
+            this.columnHeaderProcessId.Width = 80;
+            // 
+            // columnHeaderProcessName
+            // 
+            this.columnHeaderProcessName.Text = "Name";
+            this.columnHeaderProcessName.Width = 200;
+            // 
+            // columnHeaderProcessPath
+            // 
+            this.columnHeaderProcessPath.Text = "Path";
+            this.columnHeaderProcessPath.Width = 300;
+            // 
+            // panelSearchProcesses
+            // 
+            this.panelSearchProcesses.Controls.Add(this.textBoxSearchProcesses);
+            this.panelSearchProcesses.Controls.Add(this.labelSearchProcesses);
+            this.panelSearchProcesses.Dock = System.Windows.Forms.DockStyle.Top;
+            this.panelSearchProcesses.Location = new System.Drawing.Point(3, 3);
+            this.panelSearchProcesses.Name = "panelSearchProcesses";
+            this.panelSearchProcesses.Size = new System.Drawing.Size(945, 29);
+            this.panelSearchProcesses.TabIndex = 1;
+            // 
+            // textBoxSearchProcesses
+            // 
+            this.textBoxSearchProcesses.Location = new System.Drawing.Point(50, 4);
+            this.textBoxSearchProcesses.Name = "textBoxSearchProcesses";
+            this.textBoxSearchProcesses.Size = new System.Drawing.Size(154, 20);
+            this.textBoxSearchProcesses.TabIndex = 1;
+            this.textBoxSearchProcesses.TextChanged += new System.EventHandler(this.textBoxSearchProcesses_TextChanged);
+            // 
+            // labelSearchProcesses
+            // 
+            this.labelSearchProcesses.AutoSize = true;
+            this.labelSearchProcesses.Location = new System.Drawing.Point(0, 7);
+            this.labelSearchProcesses.Name = "labelSearchProcesses";
+            this.labelSearchProcesses.Size = new System.Drawing.Size(44, 13);
+            this.labelSearchProcesses.TabIndex = 0;
+            this.labelSearchProcesses.Text = "Search:";
+            // 
+            // tabPageAppDomain
+            // 
+            this.tabPageAppDomain.Controls.Add(this.listViewAppDomains);
+            this.tabPageAppDomain.Location = new System.Drawing.Point(4, 22);
+            this.tabPageAppDomain.Name = "tabPageAppDomain";
+            this.tabPageAppDomain.Padding = new System.Windows.Forms.Padding(3);
+            this.tabPageAppDomain.Size = new System.Drawing.Size(951, 609);
+            this.tabPageAppDomain.TabIndex = 3;
+            this.tabPageAppDomain.Text = "AppDomains";
+            this.tabPageAppDomain.UseVisualStyleBackColor = true;
+            // 
+            // listViewAppDomains
+            // 
+            this.listViewAppDomains.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+            this.columnHeaderAppDomainAddress,
+            this.columnHeaderAppDomainName});
+            this.listViewAppDomains.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.listViewAppDomains.FullRowSelect = true;
+            this.listViewAppDomains.GridLines = true;
+            this.listViewAppDomains.HideSelection = false;
+            this.listViewAppDomains.Location = new System.Drawing.Point(3, 3);
+            this.listViewAppDomains.Name = "listViewAppDomains";
+            this.listViewAppDomains.Size = new System.Drawing.Size(945, 603);
+            this.listViewAppDomains.TabIndex = 0;
+            this.listViewAppDomains.UseCompatibleStateImageBehavior = false;
+            this.listViewAppDomains.View = System.Windows.Forms.View.Details;
+            this.listViewAppDomains.DoubleClick += new System.EventHandler(this.listViewAppDomains_DoubleClick);
+            // 
+            // columnHeaderAppDomainAddress
+            // 
+            this.columnHeaderAppDomainAddress.Text = "Address";
+            this.columnHeaderAppDomainAddress.Width = 137;
+            // 
+            // columnHeaderAppDomainName
+            // 
+            this.columnHeaderAppDomainName.Text = "Name";
+            this.columnHeaderAppDomainName.Width = 488;
+            // 
+            // tabPageAssemblies
+            // 
+            this.tabPageAssemblies.Controls.Add(this.listViewAssemblies);
+            this.tabPageAssemblies.Location = new System.Drawing.Point(4, 22);
+            this.tabPageAssemblies.Name = "tabPageAssemblies";
+            this.tabPageAssemblies.Padding = new System.Windows.Forms.Padding(3);
+            this.tabPageAssemblies.Size = new System.Drawing.Size(951, 609);
+            this.tabPageAssemblies.TabIndex = 4;
+            this.tabPageAssemblies.Text = "Assemblies";
+            this.tabPageAssemblies.UseVisualStyleBackColor = true;
+            // 
+            // listViewAssemblies
+            // 
+            this.listViewAssemblies.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+            this.columnHeaderAssemblyAddress,
+            this.columnHeaderAssemblyName});
+            this.listViewAssemblies.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.listViewAssemblies.FullRowSelect = true;
+            this.listViewAssemblies.GridLines = true;
+            this.listViewAssemblies.HideSelection = false;
+            this.listViewAssemblies.Location = new System.Drawing.Point(3, 3);
+            this.listViewAssemblies.Name = "listViewAssemblies";
+            this.listViewAssemblies.Size = new System.Drawing.Size(945, 603);
+            this.listViewAssemblies.TabIndex = 1;
+            this.listViewAssemblies.UseCompatibleStateImageBehavior = false;
+            this.listViewAssemblies.View = System.Windows.Forms.View.Details;
+            // 
+            // columnHeaderAssemblyAddress
+            // 
+            this.columnHeaderAssemblyAddress.Text = "Address";
+            this.columnHeaderAssemblyAddress.Width = 137;
+            // 
+            // columnHeaderAssemblyName
+            // 
+            this.columnHeaderAssemblyName.Text = "Name";
+            this.columnHeaderAssemblyName.Width = 488;
+            // 
+            // tabPageTypes
+            // 
+            this.tabPageTypes.Controls.Add(this.listViewHeap);
+            this.tabPageTypes.Controls.Add(this.panelTypeSearch);
+            this.tabPageTypes.Location = new System.Drawing.Point(4, 22);
+            this.tabPageTypes.Name = "tabPageTypes";
+            this.tabPageTypes.Padding = new System.Windows.Forms.Padding(3);
+            this.tabPageTypes.Size = new System.Drawing.Size(951, 609);
+            this.tabPageTypes.TabIndex = 5;
+            this.tabPageTypes.Text = "Types";
+            this.tabPageTypes.UseVisualStyleBackColor = true;
+            // 
+            // listViewHeap
+            // 
+            this.listViewHeap.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+            this.columnHeaderHeapAddress,
+            this.columnHeaderHeapInstanceCount,
+            this.columnHeaderHeapTotalSize,
+            this.columnHeaderHeapTypeName});
+            this.listViewHeap.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.listViewHeap.FullRowSelect = true;
+            this.listViewHeap.GridLines = true;
+            this.listViewHeap.HideSelection = false;
+            this.listViewHeap.Location = new System.Drawing.Point(3, 32);
+            this.listViewHeap.Name = "listViewHeap";
+            this.listViewHeap.Size = new System.Drawing.Size(945, 574);
+            this.listViewHeap.TabIndex = 2;
+            this.listViewHeap.UseCompatibleStateImageBehavior = false;
+            this.listViewHeap.View = System.Windows.Forms.View.Details;
+            this.listViewHeap.DoubleClick += new System.EventHandler(this.listViewHeap_DoubleClick);
+            // 
+            // columnHeaderHeapAddress
+            // 
+            this.columnHeaderHeapAddress.Text = "Address";
+            this.columnHeaderHeapAddress.Width = 137;
+            // 
+            // columnHeaderHeapInstanceCount
+            // 
+            this.columnHeaderHeapInstanceCount.Text = "Count";
+            this.columnHeaderHeapInstanceCount.Width = 50;
+            // 
+            // columnHeaderHeapTotalSize
+            // 
+            this.columnHeaderHeapTotalSize.Text = "Total Size";
+            // 
+            // columnHeaderHeapTypeName
+            // 
+            this.columnHeaderHeapTypeName.Text = "Name";
+            this.columnHeaderHeapTypeName.Width = 488;
+            // 
+            // panelTypeSearch
+            // 
+            this.panelTypeSearch.Controls.Add(this.textBoxTypeSearch);
+            this.panelTypeSearch.Controls.Add(this.labelTypeSearch);
+            this.panelTypeSearch.Dock = System.Windows.Forms.DockStyle.Top;
+            this.panelTypeSearch.Location = new System.Drawing.Point(3, 3);
+            this.panelTypeSearch.Name = "panelTypeSearch";
+            this.panelTypeSearch.Size = new System.Drawing.Size(945, 29);
+            this.panelTypeSearch.TabIndex = 3;
+            // 
+            // textBoxTypeSearch
+            // 
+            this.textBoxTypeSearch.Location = new System.Drawing.Point(50, 4);
+            this.textBoxTypeSearch.Name = "textBoxTypeSearch";
+            this.textBoxTypeSearch.Size = new System.Drawing.Size(154, 20);
+            this.textBoxTypeSearch.TabIndex = 1;
+            this.textBoxTypeSearch.TextChanged += new System.EventHandler(this.textBoxTypeSearch_TextChanged);
+            // 
+            // labelTypeSearch
+            // 
+            this.labelTypeSearch.AutoSize = true;
+            this.labelTypeSearch.Location = new System.Drawing.Point(0, 7);
+            this.labelTypeSearch.Name = "labelTypeSearch";
+            this.labelTypeSearch.Size = new System.Drawing.Size(44, 13);
+            this.labelTypeSearch.TabIndex = 0;
+            this.labelTypeSearch.Text = "Search:";
+            // 
+            // tabPageInstances
+            // 
+            this.tabPageInstances.Controls.Add(this.splitContainerInstance);
+            this.tabPageInstances.Location = new System.Drawing.Point(4, 22);
+            this.tabPageInstances.Name = "tabPageInstances";
+            this.tabPageInstances.Padding = new System.Windows.Forms.Padding(3);
+            this.tabPageInstances.Size = new System.Drawing.Size(951, 609);
+            this.tabPageInstances.TabIndex = 6;
+            this.tabPageInstances.Text = "Instances";
+            this.tabPageInstances.UseVisualStyleBackColor = true;
+            // 
+            // splitContainerInstance
+            // 
+            this.splitContainerInstance.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.splitContainerInstance.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
+            this.splitContainerInstance.Location = new System.Drawing.Point(3, 3);
+            this.splitContainerInstance.Name = "splitContainerInstance";
+            // 
+            // splitContainerInstance.Panel1
+            // 
+            this.splitContainerInstance.Panel1.Controls.Add(this.listViewInstances);
+            // 
+            // splitContainerInstance.Panel2
+            // 
+            this.splitContainerInstance.Panel2.Controls.Add(this.splitContainerObjectDumpDetails);
+            this.splitContainerInstance.Panel2.Controls.Add(this.panelObjectDumpDetails);
+            this.splitContainerInstance.Panel2.Controls.Add(this.flowLayoutPanelBreadcrumb);
+            this.splitContainerInstance.Size = new System.Drawing.Size(945, 603);
+            this.splitContainerInstance.SplitterDistance = 218;
+            this.splitContainerInstance.TabIndex = 0;
+            // 
+            // listViewInstances
+            // 
+            this.listViewInstances.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+            this.columnHeaderInstanceAddress,
+            this.columnHeaderInstanceSite});
+            this.listViewInstances.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.listViewInstances.FullRowSelect = true;
+            this.listViewInstances.GridLines = true;
+            this.listViewInstances.HideSelection = false;
+            this.listViewInstances.Location = new System.Drawing.Point(0, 0);
+            this.listViewInstances.Name = "listViewInstances";
+            this.listViewInstances.Size = new System.Drawing.Size(218, 603);
+            this.listViewInstances.TabIndex = 3;
+            this.listViewInstances.UseCompatibleStateImageBehavior = false;
+            this.listViewInstances.View = System.Windows.Forms.View.Details;
+            this.listViewInstances.DoubleClick += new System.EventHandler(this.listViewInstances_DoubleClick);
+            // 
+            // columnHeaderInstanceAddress
+            // 
+            this.columnHeaderInstanceAddress.Text = "Address";
+            this.columnHeaderInstanceAddress.Width = 137;
+            // 
+            // columnHeaderInstanceSite
+            // 
+            this.columnHeaderInstanceSite.Text = "Size";
+            // 
+            // splitContainerObjectDumpDetails
+            // 
+            this.splitContainerObjectDumpDetails.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.splitContainerObjectDumpDetails.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
+            this.splitContainerObjectDumpDetails.Location = new System.Drawing.Point(0, 134);
+            this.splitContainerObjectDumpDetails.Name = "splitContainerObjectDumpDetails";
+            this.splitContainerObjectDumpDetails.Orientation = System.Windows.Forms.Orientation.Horizontal;
+            // 
+            // splitContainerObjectDumpDetails.Panel1
+            // 
+            this.splitContainerObjectDumpDetails.Panel1.Controls.Add(this.listViewObjectDump);
+            // 
+            // splitContainerObjectDumpDetails.Panel2
+            // 
+            this.splitContainerObjectDumpDetails.Panel2.Controls.Add(this.listViewFieldArray);
+            this.splitContainerObjectDumpDetails.Panel2Collapsed = true;
+            this.splitContainerObjectDumpDetails.Size = new System.Drawing.Size(723, 469);
+            this.splitContainerObjectDumpDetails.SplitterDistance = 311;
+            this.splitContainerObjectDumpDetails.TabIndex = 7;
+            // 
+            // listViewObjectDump
+            // 
+            this.listViewObjectDump.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+            this.columnHeaderObjectDumpField,
+            this.columnHeaderObjectDumpType,
+            this.columnHeaderObjectDumpAttribut,
+            this.columnHeaderObjectDumpValue,
+            this.columnHeaderObjectDumpName});
+            this.listViewObjectDump.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.listViewObjectDump.FullRowSelect = true;
+            this.listViewObjectDump.GridLines = true;
+            this.listViewObjectDump.HideSelection = false;
+            this.listViewObjectDump.Location = new System.Drawing.Point(0, 0);
+            this.listViewObjectDump.Name = "listViewObjectDump";
+            this.listViewObjectDump.Size = new System.Drawing.Size(723, 469);
+            this.listViewObjectDump.TabIndex = 4;
+            this.listViewObjectDump.UseCompatibleStateImageBehavior = false;
+            this.listViewObjectDump.View = System.Windows.Forms.View.Details;
+            this.listViewObjectDump.DoubleClick += new System.EventHandler(this.listViewObjectDump_DoubleClick);
+            // 
+            // columnHeaderObjectDumpField
+            // 
+            this.columnHeaderObjectDumpField.Text = "Field";
+            this.columnHeaderObjectDumpField.Width = 137;
+            // 
+            // columnHeaderObjectDumpType
+            // 
+            this.columnHeaderObjectDumpType.Text = "Type";
+            this.columnHeaderObjectDumpType.Width = 150;
+            // 
+            // columnHeaderObjectDumpAttribut
+            // 
+            this.columnHeaderObjectDumpAttribut.Text = "Attr.";
+            // 
+            // columnHeaderObjectDumpValue
+            // 
+            this.columnHeaderObjectDumpValue.Text = "Value";
+            this.columnHeaderObjectDumpValue.Width = 150;
+            // 
+            // columnHeaderObjectDumpName
+            // 
+            this.columnHeaderObjectDumpName.Text = "Name";
+            this.columnHeaderObjectDumpName.Width = 150;
+            // 
+            // listViewFieldArray
+            // 
+            this.listViewFieldArray.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+            this.columnHeaderFieldArrayNumber,
+            this.columnHeaderFieldArrayAddress});
+            this.listViewFieldArray.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.listViewFieldArray.FullRowSelect = true;
+            this.listViewFieldArray.GridLines = true;
+            this.listViewFieldArray.HideSelection = false;
+            this.listViewFieldArray.Location = new System.Drawing.Point(0, 0);
+            this.listViewFieldArray.Name = "listViewFieldArray";
+            this.listViewFieldArray.Size = new System.Drawing.Size(723, 154);
+            this.listViewFieldArray.TabIndex = 4;
+            this.listViewFieldArray.UseCompatibleStateImageBehavior = false;
+            this.listViewFieldArray.View = System.Windows.Forms.View.Details;
+            this.listViewFieldArray.DoubleClick += new System.EventHandler(this.listViewFieldArray_DoubleClick);
+            // 
+            // columnHeaderFieldArrayNumber
+            // 
+            this.columnHeaderFieldArrayNumber.Text = "#";
+            this.columnHeaderFieldArrayNumber.Width = 30;
+            // 
+            // columnHeaderFieldArrayAddress
+            // 
+            this.columnHeaderFieldArrayAddress.Text = "Address";
+            this.columnHeaderFieldArrayAddress.Width = 200;
+            // 
+            // panelObjectDumpDetails
+            // 
+            this.panelObjectDumpDetails.Controls.Add(this.textBoxObjectDumpToString);
+            this.panelObjectDumpDetails.Controls.Add(this.textBoxObjectDumpSize);
+            this.panelObjectDumpDetails.Controls.Add(this.textBoxObjectDumpType);
+            this.panelObjectDumpDetails.Controls.Add(this.labelObjectDumpToString);
+            this.panelObjectDumpDetails.Controls.Add(this.labelObjectDumpTrueSize);
+            this.panelObjectDumpDetails.Controls.Add(this.labelObjectDumpTypeName);
+            this.panelObjectDumpDetails.Dock = System.Windows.Forms.DockStyle.Top;
+            this.panelObjectDumpDetails.Location = new System.Drawing.Point(0, 48);
+            this.panelObjectDumpDetails.Name = "panelObjectDumpDetails";
+            this.panelObjectDumpDetails.Size = new System.Drawing.Size(723, 86);
+            this.panelObjectDumpDetails.TabIndex = 5;
+            // 
+            // textBoxObjectDumpToString
+            // 
+            this.textBoxObjectDumpToString.Location = new System.Drawing.Point(100, 58);
+            this.textBoxObjectDumpToString.Name = "textBoxObjectDumpToString";
+            this.textBoxObjectDumpToString.ReadOnly = true;
+            this.textBoxObjectDumpToString.Size = new System.Drawing.Size(428, 20);
+            this.textBoxObjectDumpToString.TabIndex = 3;
+            // 
+            // textBoxObjectDumpSize
+            // 
+            this.textBoxObjectDumpSize.Location = new System.Drawing.Point(100, 32);
+            this.textBoxObjectDumpSize.Name = "textBoxObjectDumpSize";
+            this.textBoxObjectDumpSize.ReadOnly = true;
+            this.textBoxObjectDumpSize.Size = new System.Drawing.Size(107, 20);
+            this.textBoxObjectDumpSize.TabIndex = 2;
+            // 
+            // textBoxObjectDumpType
+            // 
+            this.textBoxObjectDumpType.Location = new System.Drawing.Point(100, 6);
+            this.textBoxObjectDumpType.Name = "textBoxObjectDumpType";
+            this.textBoxObjectDumpType.ReadOnly = true;
+            this.textBoxObjectDumpType.Size = new System.Drawing.Size(428, 20);
+            this.textBoxObjectDumpType.TabIndex = 1;
+            // 
+            // labelObjectDumpToString
+            // 
+            this.labelObjectDumpToString.AutoSize = true;
+            this.labelObjectDumpToString.Location = new System.Drawing.Point(5, 61);
+            this.labelObjectDumpToString.Name = "labelObjectDumpToString";
+            this.labelObjectDumpToString.Size = new System.Drawing.Size(53, 13);
+            this.labelObjectDumpToString.TabIndex = 0;
+            this.labelObjectDumpToString.Text = "To String:";
+            // 
+            // labelObjectDumpTrueSize
+            // 
+            this.labelObjectDumpTrueSize.AutoSize = true;
+            this.labelObjectDumpTrueSize.Location = new System.Drawing.Point(5, 35);
+            this.labelObjectDumpTrueSize.Name = "labelObjectDumpTrueSize";
+            this.labelObjectDumpTrueSize.Size = new System.Drawing.Size(89, 13);
+            this.labelObjectDumpTrueSize.TabIndex = 0;
+            this.labelObjectDumpTrueSize.Text = "True size (sizeof):";
+            // 
+            // labelObjectDumpTypeName
+            // 
+            this.labelObjectDumpTypeName.AutoSize = true;
+            this.labelObjectDumpTypeName.Location = new System.Drawing.Point(5, 9);
+            this.labelObjectDumpTypeName.Name = "labelObjectDumpTypeName";
+            this.labelObjectDumpTypeName.Size = new System.Drawing.Size(34, 13);
+            this.labelObjectDumpTypeName.TabIndex = 0;
+            this.labelObjectDumpTypeName.Text = "Type:";
+            // 
+            // flowLayoutPanelBreadcrumb
+            // 
+            this.flowLayoutPanelBreadcrumb.AutoScroll = true;
+            this.flowLayoutPanelBreadcrumb.Dock = System.Windows.Forms.DockStyle.Top;
+            this.flowLayoutPanelBreadcrumb.Location = new System.Drawing.Point(0, 0);
+            this.flowLayoutPanelBreadcrumb.Name = "flowLayoutPanelBreadcrumb";
+            this.flowLayoutPanelBreadcrumb.Size = new System.Drawing.Size(723, 48);
+            this.flowLayoutPanelBreadcrumb.TabIndex = 6;
+            this.flowLayoutPanelBreadcrumb.WrapContents = false;
+            // 
+            // tabPageThreads
+            // 
+            this.tabPageThreads.Location = new System.Drawing.Point(4, 22);
+            this.tabPageThreads.Name = "tabPageThreads";
+            this.tabPageThreads.Padding = new System.Windows.Forms.Padding(3);
+            this.tabPageThreads.Size = new System.Drawing.Size(951, 609);
+            this.tabPageThreads.TabIndex = 7;
+            this.tabPageThreads.Text = "Threads";
+            this.tabPageThreads.UseVisualStyleBackColor = true;
+            // 
+            // tabPageOutput
+            // 
+            this.tabPageOutput.Controls.Add(this.textBoxCdbInput);
+            this.tabPageOutput.Controls.Add(this.textBoxCdbOuput);
+            this.tabPageOutput.Location = new System.Drawing.Point(4, 22);
+            this.tabPageOutput.Name = "tabPageOutput";
+            this.tabPageOutput.Padding = new System.Windows.Forms.Padding(3);
+            this.tabPageOutput.Size = new System.Drawing.Size(951, 609);
+            this.tabPageOutput.TabIndex = 0;
+            this.tabPageOutput.Text = "Output";
+            this.tabPageOutput.UseVisualStyleBackColor = true;
+            // 
+            // textBoxCdbInput
+            // 
+            this.textBoxCdbInput.Dock = System.Windows.Forms.DockStyle.Bottom;
+            this.textBoxCdbInput.Location = new System.Drawing.Point(3, 586);
+            this.textBoxCdbInput.Name = "textBoxCdbInput";
+            this.textBoxCdbInput.Size = new System.Drawing.Size(945, 20);
+            this.textBoxCdbInput.TabIndex = 0;
+            this.textBoxCdbInput.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBoxCdbInput_KeyDown);
+            // 
+            // textBoxCdbOuput
+            // 
+            this.textBoxCdbOuput.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.textBoxCdbOuput.Font = new System.Drawing.Font("Lucida Console", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.textBoxCdbOuput.HideSelection = false;
+            this.textBoxCdbOuput.Location = new System.Drawing.Point(3, 3);
+            this.textBoxCdbOuput.Multiline = true;
+            this.textBoxCdbOuput.Name = "textBoxCdbOuput";
+            this.textBoxCdbOuput.ReadOnly = true;
+            this.textBoxCdbOuput.ScrollBars = System.Windows.Forms.ScrollBars.Both;
+            this.textBoxCdbOuput.Size = new System.Drawing.Size(945, 603);
+            this.textBoxCdbOuput.TabIndex = 0;
+            this.textBoxCdbOuput.WordWrap = false;
+            // 
+            // tabPageSettings
+            // 
+            this.tabPageSettings.Controls.Add(this.tableLayoutPanelSettings);
+            this.tabPageSettings.Location = new System.Drawing.Point(4, 22);
+            this.tabPageSettings.Name = "tabPageSettings";
+            this.tabPageSettings.Padding = new System.Windows.Forms.Padding(3);
+            this.tabPageSettings.Size = new System.Drawing.Size(951, 609);
+            this.tabPageSettings.TabIndex = 1;
+            this.tabPageSettings.Text = "Settings";
+            this.tabPageSettings.UseVisualStyleBackColor = true;
+            // 
+            // tableLayoutPanelSettings
+            // 
+            this.tableLayoutPanelSettings.ColumnCount = 2;
+            this.tableLayoutPanelSettings.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
+            this.tableLayoutPanelSettings.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
+            this.tableLayoutPanelSettings.Controls.Add(this.labelCdbPath, 0, 0);
+            this.tableLayoutPanelSettings.Controls.Add(this.textBoxCBDPath, 1, 0);
+            this.tableLayoutPanelSettings.Controls.Add(this.labelSosexPath, 0, 1);
+            this.tableLayoutPanelSettings.Controls.Add(this.textBoxSosexPath, 1, 1);
+            this.tableLayoutPanelSettings.Controls.Add(this.textBoxSosexInfo, 1, 2);
+            this.tableLayoutPanelSettings.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.tableLayoutPanelSettings.Location = new System.Drawing.Point(3, 3);
+            this.tableLayoutPanelSettings.Name = "tableLayoutPanelSettings";
+            this.tableLayoutPanelSettings.RowCount = 4;
+            this.tableLayoutPanelSettings.RowStyles.Add(new System.Windows.Forms.RowStyle());
+            this.tableLayoutPanelSettings.RowStyles.Add(new System.Windows.Forms.RowStyle());
+            this.tableLayoutPanelSettings.RowStyles.Add(new System.Windows.Forms.RowStyle());
+            this.tableLayoutPanelSettings.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+            this.tableLayoutPanelSettings.Size = new System.Drawing.Size(945, 603);
+            this.tableLayoutPanelSettings.TabIndex = 0;
+            // 
+            // labelCdbPath
+            // 
+            this.labelCdbPath.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+            this.labelCdbPath.AutoSize = true;
+            this.labelCdbPath.Location = new System.Drawing.Point(3, 6);
+            this.labelCdbPath.Name = "labelCdbPath";
+            this.labelCdbPath.Size = new System.Drawing.Size(70, 13);
+            this.labelCdbPath.TabIndex = 0;
+            this.labelCdbPath.Text = "CDB path:";
+            // 
+            // textBoxCBDPath
+            // 
+            this.textBoxCBDPath.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+            this.textBoxCBDPath.Location = new System.Drawing.Point(79, 3);
+            this.textBoxCBDPath.Name = "textBoxCBDPath";
+            this.textBoxCBDPath.Size = new System.Drawing.Size(863, 20);
+            this.textBoxCBDPath.TabIndex = 1;
+            this.textBoxCBDPath.Text = "C:\\Program Files\\Debugging Tools for Windows (x64)\\";
+            // 
+            // labelSosexPath
+            // 
+            this.labelSosexPath.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+            this.labelSosexPath.AutoSize = true;
+            this.labelSosexPath.Location = new System.Drawing.Point(3, 32);
+            this.labelSosexPath.Name = "labelSosexPath";
+            this.labelSosexPath.Size = new System.Drawing.Size(70, 13);
+            this.labelSosexPath.TabIndex = 0;
+            this.labelSosexPath.Text = "SOSEX path:";
+            // 
+            // textBoxSosexPath
+            // 
+            this.textBoxSosexPath.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+            this.textBoxSosexPath.Location = new System.Drawing.Point(79, 29);
+            this.textBoxSosexPath.Name = "textBoxSosexPath";
+            this.textBoxSosexPath.Size = new System.Drawing.Size(863, 20);
+            this.textBoxSosexPath.TabIndex = 1;
+            // 
+            // textBoxSosexInfo
+            // 
+            this.textBoxSosexInfo.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+                        | System.Windows.Forms.AnchorStyles.Left)
+                        | System.Windows.Forms.AnchorStyles.Right)));
+            this.textBoxSosexInfo.Location = new System.Drawing.Point(79, 55);
+            this.textBoxSosexInfo.Multiline = true;
+            this.textBoxSosexInfo.Name = "textBoxSosexInfo";
+            this.textBoxSosexInfo.ReadOnly = true;
+            this.textBoxSosexInfo.Size = new System.Drawing.Size(863, 50);
+            this.textBoxSosexInfo.TabIndex = 3;
+            this.textBoxSosexInfo.Text = "You can download Sosex from :\r\n- http://www.stevestechspot.com/downloads/sosex_64" +
+                ".zip\r\n- http://www.stevestechspot.com/downloads/sosex_32.zip";
+            // 
+            // toolStripSettings
+            // 
+            this.toolStripSettings.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.toolStripSplitButtonRefresh,
+            this.toolStripButtonAttach,
+            this.toolStripButtonDetach,
+            this.toolStripButtonSaveSettings});
+            this.toolStripSettings.Location = new System.Drawing.Point(0, 0);
+            this.toolStripSettings.Name = "toolStripSettings";
+            this.toolStripSettings.Size = new System.Drawing.Size(959, 25);
+            this.toolStripSettings.TabIndex = 2;
+            this.toolStripSettings.Text = "toolStrip1";
+            // 
+            // toolStripSplitButtonRefresh
+            // 
+            this.toolStripSplitButtonRefresh.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.processesToolStripMenuItem,
+            this.appDomainsToolStripMenuItem,
+            this.assembliesToolStripMenuItem,
+            this.typesToolStripMenuItem});
+            this.toolStripSplitButtonRefresh.Image = global::SOS.Net.Properties.Resources.arrow_refresh;
+            this.toolStripSplitButtonRefresh.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripSplitButtonRefresh.Name = "toolStripSplitButtonRefresh";
+            this.toolStripSplitButtonRefresh.Size = new System.Drawing.Size(78, 22);
+            this.toolStripSplitButtonRefresh.Text = "Refresh";
+            this.toolStripSplitButtonRefresh.ButtonClick += new System.EventHandler(this.toolStripSplitButtonRefresh_ButtonClick);
+            // 
+            // processesToolStripMenuItem
+            // 
+            this.processesToolStripMenuItem.Name = "processesToolStripMenuItem";
+            this.processesToolStripMenuItem.Size = new System.Drawing.Size(143, 22);
+            this.processesToolStripMenuItem.Text = "Processes";
+            this.processesToolStripMenuItem.Click += new System.EventHandler(this.toolStripButtonRefreshProcesses_Click);
+            // 
+            // appDomainsToolStripMenuItem
+            // 
+            this.appDomainsToolStripMenuItem.Enabled = false;
+            this.appDomainsToolStripMenuItem.Name = "appDomainsToolStripMenuItem";
+            this.appDomainsToolStripMenuItem.Size = new System.Drawing.Size(143, 22);
+            this.appDomainsToolStripMenuItem.Text = "AppDomains";
+            this.appDomainsToolStripMenuItem.Click += new System.EventHandler(this.toolStripButtonRefreshAppDomains_Click);
+            // 
+            // assembliesToolStripMenuItem
+            // 
+            this.assembliesToolStripMenuItem.Enabled = false;
+            this.assembliesToolStripMenuItem.Name = "assembliesToolStripMenuItem";
+            this.assembliesToolStripMenuItem.Size = new System.Drawing.Size(143, 22);
+            this.assembliesToolStripMenuItem.Text = "Assemblies";
+            // 
+            // typesToolStripMenuItem
+            // 
+            this.typesToolStripMenuItem.Enabled = false;
+            this.typesToolStripMenuItem.Name = "typesToolStripMenuItem";
+            this.typesToolStripMenuItem.Size = new System.Drawing.Size(143, 22);
+            this.typesToolStripMenuItem.Text = "Types";
+            this.typesToolStripMenuItem.Click += new System.EventHandler(this.typesToolStripMenuItem_Click);
+            // 
+            // toolStripButtonAttach
+            // 
+            this.toolStripButtonAttach.Enabled = false;
+            this.toolStripButtonAttach.Image = global::SOS.Net.Properties.Resources.connect;
+            this.toolStripButtonAttach.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripButtonAttach.Name = "toolStripButtonAttach";
+            this.toolStripButtonAttach.Size = new System.Drawing.Size(128, 22);
+            this.toolStripButtonAttach.Text = "Attach to process...";
+            this.toolStripButtonAttach.Click += new System.EventHandler(this.toolStripButtonAttach_Click);
+            // 
+            // toolStripButtonDetach
+            // 
+            this.toolStripButtonDetach.Enabled = false;
+            this.toolStripButtonDetach.Image = global::SOS.Net.Properties.Resources.disconnect;
+            this.toolStripButtonDetach.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripButtonDetach.Name = "toolStripButtonDetach";
+            this.toolStripButtonDetach.Size = new System.Drawing.Size(64, 22);
+            this.toolStripButtonDetach.Text = "Detach";
+            this.toolStripButtonDetach.Click += new System.EventHandler(this.toolStripButtonDetach_Click);
+            // 
+            // toolStripButtonSaveSettings
+            // 
+            this.toolStripButtonSaveSettings.Image = global::SOS.Net.Properties.Resources.disk;
+            this.toolStripButtonSaveSettings.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripButtonSaveSettings.Name = "toolStripButtonSaveSettings";
+            this.toolStripButtonSaveSettings.Size = new System.Drawing.Size(95, 22);
+            this.toolStripButtonSaveSettings.Text = "Save settings";
+            this.toolStripButtonSaveSettings.Click += new System.EventHandler(this.toolStripButtonSaveSettings_Click);
+            // 
+            // timerFilter
+            // 
+            this.timerFilter.Interval = 500;
+            this.timerFilter.Tick += new System.EventHandler(this.timerFilter_Tick);
+            // 
+            // timerTypeFilter
+            // 
+            this.timerTypeFilter.Interval = 500;
+            this.timerTypeFilter.Tick += new System.EventHandler(this.timerTypeFilter_Tick);
+            // 
+            // FormMain
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(959, 660);
+            this.Controls.Add(this.tabControlMain);
+            this.Controls.Add(this.toolStripSettings);
+            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+            this.Name = "FormMain";
+            this.Text = "SOS for .Net";
+            this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
+            this.Load += new System.EventHandler(this.FormMain_Load);
+            this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FormMain_FormClosed);
+            this.tabControlMain.ResumeLayout(false);
+            this.tabPageProcesses.ResumeLayout(false);
+            this.panelSearchProcesses.ResumeLayout(false);
+            this.panelSearchProcesses.PerformLayout();
+            this.tabPageAppDomain.ResumeLayout(false);
+            this.tabPageAssemblies.ResumeLayout(false);
+            this.tabPageTypes.ResumeLayout(false);
+            this.panelTypeSearch.ResumeLayout(false);
+            this.panelTypeSearch.PerformLayout();
+            this.tabPageInstances.ResumeLayout(false);
+            this.splitContainerInstance.Panel1.ResumeLayout(false);
+            this.splitContainerInstance.Panel2.ResumeLayout(false);
+            this.splitContainerInstance.ResumeLayout(false);
+            this.splitContainerObjectDumpDetails.Panel1.ResumeLayout(false);
+            this.splitContainerObjectDumpDetails.Panel2.ResumeLayout(false);
+            this.splitContainerObjectDumpDetails.ResumeLayout(false);
+            this.panelObjectDumpDetails.ResumeLayout(false);
+            this.panelObjectDumpDetails.PerformLayout();
+            this.tabPageOutput.ResumeLayout(false);
+            this.tabPageOutput.PerformLayout();
+            this.tabPageSettings.ResumeLayout(false);
+            this.tableLayoutPanelSettings.ResumeLayout(false);
+            this.tableLayoutPanelSettings.PerformLayout();
+            this.toolStripSettings.ResumeLayout(false);
+            this.toolStripSettings.PerformLayout();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.TabControl tabControlMain;
+        private System.Windows.Forms.TabPage tabPageOutput;
+        private System.Windows.Forms.TabPage tabPageSettings;
+        private System.Windows.Forms.TableLayoutPanel tableLayoutPanelSettings;
+        private System.Windows.Forms.Label labelCdbPath;
+        private System.Windows.Forms.TextBox textBoxCBDPath;
+        private System.Windows.Forms.Label labelSosexPath;
+        private System.Windows.Forms.ToolStrip toolStripSettings;
+        private System.Windows.Forms.TextBox textBoxSosexPath;
+        private System.Windows.Forms.ToolStripButton toolStripButtonSaveSettings;
+        private System.Windows.Forms.TabPage tabPageProcesses;
+        private System.Windows.Forms.ListView listViewProcesses;
+        private System.Windows.Forms.ColumnHeader columnHeaderProcessId;
+        private System.Windows.Forms.ColumnHeader columnHeaderProcessName;
+        private System.Windows.Forms.Timer timerFilter;
+        private System.Windows.Forms.ColumnHeader columnHeaderProcessPath;
+        private System.Windows.Forms.TextBox textBoxCdbOuput;
+        private System.Windows.Forms.TextBox textBoxCdbInput;
+        private System.Windows.Forms.TabPage tabPageAppDomain;
+        private System.Windows.Forms.TabPage tabPageAssemblies;
+        private System.Windows.Forms.TabPage tabPageTypes;
+        private System.Windows.Forms.TabPage tabPageInstances;
+        private System.Windows.Forms.TabPage tabPageThreads;
+        private System.Windows.Forms.ListView listViewAppDomains;
+        private System.Windows.Forms.ColumnHeader columnHeaderAppDomainAddress;
+        private System.Windows.Forms.ColumnHeader columnHeaderAppDomainName;
+        private System.Windows.Forms.ListView listViewAssemblies;
+        private System.Windows.Forms.ColumnHeader columnHeaderAssemblyAddress;
+        private System.Windows.Forms.ColumnHeader columnHeaderAssemblyName;
+        private System.Windows.Forms.SplitContainer splitContainerInstance;
+        private System.Windows.Forms.Panel panelSearchProcesses;
+        private System.Windows.Forms.TextBox textBoxSearchProcesses;
+        private System.Windows.Forms.Label labelSearchProcesses;
+        private System.Windows.Forms.ToolStripButton toolStripButtonAttach;
+        private System.Windows.Forms.ToolStripButton toolStripButtonDetach;
+        private System.Windows.Forms.ToolStripSplitButton toolStripSplitButtonRefresh;
+        private System.Windows.Forms.ToolStripMenuItem processesToolStripMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem appDomainsToolStripMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem assembliesToolStripMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem typesToolStripMenuItem;
+        private System.Windows.Forms.ListView listViewHeap;
+        private System.Windows.Forms.ColumnHeader columnHeaderHeapAddress;
+        private System.Windows.Forms.ColumnHeader columnHeaderHeapInstanceCount;
+        private System.Windows.Forms.ColumnHeader columnHeaderHeapTotalSize;
+        private System.Windows.Forms.ColumnHeader columnHeaderHeapTypeName;
+        private System.Windows.Forms.TextBox textBoxSosexInfo;
+        private System.Windows.Forms.ListView listViewInstances;
+        private System.Windows.Forms.ColumnHeader columnHeaderInstanceAddress;
+        private System.Windows.Forms.ColumnHeader columnHeaderInstanceSite;
+        private System.Windows.Forms.ListView listViewObjectDump;
+        private System.Windows.Forms.ColumnHeader columnHeaderObjectDumpField;
+        private System.Windows.Forms.ColumnHeader columnHeaderObjectDumpType;
+        private System.Windows.Forms.ColumnHeader columnHeaderObjectDumpValue;
+        private System.Windows.Forms.ColumnHeader columnHeaderObjectDumpName;
+        private System.Windows.Forms.ColumnHeader columnHeaderObjectDumpAttribut;
+        private System.Windows.Forms.Panel panelTypeSearch;
+        private System.Windows.Forms.TextBox textBoxTypeSearch;
+        private System.Windows.Forms.Label labelTypeSearch;
+        private System.Windows.Forms.Timer timerTypeFilter;
+        private System.Windows.Forms.Panel panelObjectDumpDetails;
+        private System.Windows.Forms.TextBox textBoxObjectDumpToString;
+        private System.Windows.Forms.TextBox textBoxObjectDumpSize;
+        private System.Windows.Forms.TextBox textBoxObjectDumpType;
+        private System.Windows.Forms.Label labelObjectDumpToString;
+        private System.Windows.Forms.Label labelObjectDumpTrueSize;
+        private System.Windows.Forms.Label labelObjectDumpTypeName;
+        private System.Windows.Forms.FlowLayoutPanel flowLayoutPanelBreadcrumb;
+        private System.Windows.Forms.SplitContainer splitContainerObjectDumpDetails;
+        private System.Windows.Forms.ListView listViewFieldArray;
+        private System.Windows.Forms.ColumnHeader columnHeaderFieldArrayNumber;
+        private System.Windows.Forms.ColumnHeader columnHeaderFieldArrayAddress;
+    }
+}
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using SOS.Net.Model;
+
+namespace SOS.Net
+{
+    public partial class FormMain : Form
+    {
+        private SosController controller = new SosController();
+
+        private ObjectInfo currentInstance;
+
+        public FormMain()
+        {
+            InitializeComponent();
+            controller.OnCdbOuput += new EventHandler<CdbEventArgs>(controller_OnCdbOuput);
+        }
+
+        void controller_OnCdbOuput(object sender, CdbEventArgs e)
+        {
+            this.textBoxCdbOuput.AppendText(e.Intput);
+            this.textBoxCdbOuput.AppendText(Environment.NewLine);
+            this.textBoxCdbOuput.AppendText(e.Output);
+            this.textBoxCdbOuput.AppendText(Environment.NewLine);
+            this.MoveOutputToEnd();
+        }
+
+        private void MoveOutputToEnd()
+        {
+            this.textBoxCdbOuput.SelectionStart = this.textBoxCdbOuput.Text.Length;
+            this.textBoxCdbOuput.SelectionLength = 0;
+            this.textBoxCdbOuput.ScrollToCaret();
+        }
+
+        private void toolStripButtonRefreshProcesses_Click(object sender, EventArgs e)
+        {
+            this.RefreshProcesses();
+        }
+
+        private void RefreshProcesses()
+        {
+            this.tabControlMain.SelectTab(this.tabPageProcesses);
+
+            var result = this.controller.RefreshProcesses();
+            if(!string.IsNullOrEmpty(this.textBoxSearchProcesses.Text))
+                result = this.controller.FilterProcesses(this.textBoxSearchProcesses.Text);
+
+            this.listViewProcesses.BeginUpdate();
+            this.listViewProcesses.Items.Clear();
+            this.listViewProcesses.Items.AddRange(result);
+            this.listViewProcesses.EndUpdate();
+        }
+
+        private void textBoxSearchProcesses_TextChanged(object sender, EventArgs e)
+        {
+            this.timerFilter.Enabled = false;
+            this.timerFilter.Enabled = true;
+        }
+
+        private void timerFilter_Tick(object sender, EventArgs e)
+        {
+            this.timerFilter.Enabled = false;
+            this.listViewProcesses.BeginUpdate();
+            this.listViewProcesses.Items.Clear();
+            this.listViewProcesses.Items.AddRange(this.controller.FilterProcesses(this.textBoxSearchProcesses.Text));
+            this.listViewProcesses.EndUpdate();            
+        }
+
+        private void toolStripButtonAttach_Click(object sender, EventArgs e)
+        {
+            this.AttachSelectedProcess();
+        }
+
+        private void AttachSelectedProcess()
+        {
+            if(this.listViewProcesses.SelectedIndices != null && this.listViewProcesses.SelectedIndices.Count > 0)
+            {
+                var selected = this.listViewProcesses.Items[this.listViewProcesses.SelectedIndices[0]];
+                this.controller.AttachToProcess(selected.SubItems[0].Text);
+
+                this.toolStripButtonAttach.Enabled = false;
+                this.toolStripButtonDetach.Enabled = true;
+                this.appDomainsToolStripMenuItem.Enabled = true;
+                this.assembliesToolStripMenuItem.Enabled = true;
+                this.typesToolStripMenuItem.Enabled = true;
+            }
+            
+            this.RefreshAppDomains();
+        }
+
+        private void FormMain_Load(object sender, EventArgs e)
+        {
+            var settings = this.controller.LoadSettings();
+            this.textBoxCBDPath.Text = settings.CdbPath;
+            this.textBoxSosexPath.Text = settings.SosexPath;
+        }
+
+        private void toolStripButtonSaveSettings_Click(object sender, EventArgs e)
+        {
+            var settings = new CdbSettings
+                           {
+                               CdbPath = this.textBoxCBDPath.Text,
+                               SosexPath = this.textBoxSosexPath.Text
+                           };
+            this.controller.SaveSettings(settings);
+        }
+
+        private void listViewProcesses_DoubleClick(object sender, EventArgs e)
+        {
+            this.AttachSelectedProcess();
+        }
+
+        private void FormMain_FormClosed(object sender, FormClosedEventArgs e)
+        {
+            this.controller.Dispose();
+        }
+
+        private void toolStripButtonDetach_Click(object sender, EventArgs e)
+        {
+            this.controller.Detach();
+
+            this.toolStripButtonDetach.Enabled = false;
+            this.appDomainsToolStripMenuItem.Enabled = false;
+            this.assembliesToolStripMenuItem.Enabled = false;
+            this.typesToolStripMenuItem.Enabled = false;
+            this.toolStripButtonAttach.Enabled = listViewProcesses.SelectedIndices.Count == 1;
+        }
+
+        private void textBoxCdbInput_KeyDown(object sender, KeyEventArgs e)
+        {            
+            if(e.KeyValue == 13)
+            {
+                // RETURN
+                this.controller.ExecuteCommand(this.textBoxCdbInput.Text);
+                this.textBoxCdbInput.Text = string.Empty;
+                e.Handled = true;
+                e.SuppressKeyPress = true;
+            }
+            else if(e.KeyValue == 38)
+            {
+                // UP
+                this.textBoxCdbInput.Text = this.controller.GetNextCommand();
+                this.textBoxCdbInput.SelectAll();
+                e.Handled = true;
+                e.SuppressKeyPress = true;
+            }
+            else if(e.KeyValue == 40)
+            {
+                // DOWN
+                this.textBoxCdbInput.Text = this.controller.GetPreviousCommand();
+                this.textBoxCdbInput.SelectAll();
+                e.Handled = true;
+                e.SuppressKeyPress = true;
+            }
+        }
+
+        private void toolStripButtonRefreshAppDomains_Click(object sender, EventArgs e)
+        {
+            this.RefreshAppDomains();
+        }
+
+        private void RefreshAppDomains()
+        {
+            this.tabControlMain.SelectTab(this.tabPageAppDomain);
+
+            this.listViewAppDomains.BeginUpdate();
+            this.listViewAppDomains.Items.Clear();
+            this.listViewAppDomains.Items.AddRange(this.controller.GetAllAppDomains());
+            this.listViewAppDomains.EndUpdate();
+        }
+
+        private void listViewAppDomains_DoubleClick(object sender, EventArgs e)
+        {
+            this.RefreshSelectedAppDomainsAssemblies();
+        }
+
+        private void RefreshSelectedAppDomainsAssemblies()
+        {
+            this.tabControlMain.SelectTab(this.tabPageAssemblies);
+
+            if (this.listViewAppDomains.SelectedIndices != null && this.listViewAppDomains.SelectedIndices.Count > 0)
+            {
+                var selected = this.listViewAppDomains.Items[this.listViewAppDomains.SelectedIndices[0]];
+                
+                this.listViewAssemblies.BeginUpdate();
+                this.listViewAssemblies.Items.Clear();
+                this.listViewAssemblies.Items.AddRange( this.controller.GetAssemblies(selected.SubItems[0].Text));
+                this.listViewAssemblies.EndUpdate();
+            }
+        }
+
+        private void toolStripButtonRefreshAssemblies_Click(object sender, EventArgs e)
+        {
+            this.RefreshSelectedAppDomainsAssemblies();
+        }
+
+        private void tabControlMain_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            if(this.tabControlMain.SelectedTab == this.tabPageOutput)
+                this.MoveOutputToEnd();
+        }
+
+        private void toolStripSplitButtonRefresh_ButtonClick(object sender, EventArgs e)
+        {
+            if(this.tabControlMain.SelectedTab == this.tabPageProcesses)
+                this.RefreshProcesses();
+            else if (this.tabControlMain.SelectedTab == this.tabPageAppDomain)
+                this.RefreshAppDomains();
+            else if (this.tabControlMain.SelectedTab == this.tabPageAssemblies)
+                this.RefreshSelectedAppDomainsAssemblies();
+            else if (this.tabControlMain.SelectedTab == this.tabPageTypes)
+                this.RefreshTypes();
+            else if (this.tabControlMain.SelectedTab == this.tabPageInstances)
+                this.RefreshSelectedTypeInstances();
+        }
+
+        private void RefreshSelectedTypeInstances()
+        {
+            this.tabControlMain.SelectTab(this.tabPageInstances);
+
+            if (this.listViewHeap.SelectedIndices != null && this.listViewHeap.SelectedIndices.Count > 0)
+            {
+                var selected = this.listViewHeap.Items[this.listViewHeap.SelectedIndices[0]];
+
+                this.listViewInstances.BeginUpdate();
+                this.listViewInstances.Items.Clear();
+                this.listViewInstances.Items.AddRange(this.controller.GetInstances(selected.SubItems[0].Text));
+                this.listViewInstances.EndUpdate();
+            }
+        }
+
+        private void typesToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            this.RefreshTypes();
+        }
+
+        private void RefreshTypes()
+        {
+            this.tabControlMain.SelectTab(this.tabPageTypes);
+
+            this.listViewHeap.BeginUpdate();
+            this.listViewHeap.Items.Clear();
+            this.listViewHeap.Items.AddRange(this.controller.GetDumpHeapTypes());
+            this.listViewHeap.EndUpdate();
+
+            if(!string.IsNullOrEmpty(this.textBoxTypeSearch.Text))
+            {
+                this.listViewHeap.BeginUpdate();
+                this.listViewHeap.Items.Clear();
+                this.listViewHeap.Items.AddRange(this.controller.FilterTypes(this.textBoxTypeSearch.Text));
+                this.listViewHeap.EndUpdate();
+            }
+        }
+
+        private void RefreshSelectedTypeObjectDump()
+        {
+            this.tabControlMain.SelectTab(this.tabPageInstances);
+
+            this.flowLayoutPanelBreadcrumb.Controls.Clear();
+
+            if (this.listViewInstances.SelectedIndices != null && this.listViewInstances.SelectedIndices.Count > 0)
+            {
+                var selected = this.listViewInstances.Items[this.listViewInstances.SelectedIndices[0]];
+
+                Button button = this.CreateInstanceButton(selected.SubItems[0].Text);
+
+                this.flowLayoutPanelBreadcrumb.Controls.Add(button);
+
+                this.OnInstanceSelected(button);
+            }
+        }
+
+        private Button CreateInstanceButton(string address)
+        {
+            var instanceInfo = this.controller.GetInstanceDumpDetails(address);
+
+            Button button = new Button();
+            button.AutoSize = true;
+            button.AutoSizeMode = AutoSizeMode.GrowAndShrink;
+            button.Text = instanceInfo.Name;
+            button.Tag = instanceInfo;
+            button.Click += new EventHandler(this.button_Click);
+            button.Font = new Font(button.Font, FontStyle.Bold);
+
+            return button;
+        }
+
+        private Button CreateInstanceButton(string address, string index)
+        {
+            var instanceInfo = this.controller.GetInstanceDumpDetails(address, index);
+
+            Button button = new Button();
+            button.AutoSize = true;
+            button.AutoSizeMode = AutoSizeMode.GrowAndShrink;
+            button.Text = instanceInfo.Name;
+            button.Tag = instanceInfo;
+            button.Click += new EventHandler(this.button_Click);
+            button.Font = new Font(button.Font, FontStyle.Bold);
+
+            return button;
+        }
+
+        void button_Click(object sender, EventArgs e)
+        {
+            Button button = (Button)sender;
+
+            OnInstanceSelected(button);           
+        }
+
+        private void OnInstanceSelected(Button button)
+        {
+            foreach (var item in this.flowLayoutPanelBreadcrumb.Controls)
+            {
+                Button otherButtons = item as Button;
+                if (otherButtons != null)
+                {
+                    otherButtons.Font = new Font(otherButtons.Font, FontStyle.Regular);                    
+                }
+            }
+
+            button.Font = new Font(button.Font, FontStyle.Bold);
+            string address = ((ObjectInfo)button.Tag).Address;
+            string index = ((ObjectInfo)button.Tag).Index;
+
+            if (string.IsNullOrEmpty(index))
+            {
+                this.listViewObjectDump.BeginUpdate();
+                this.listViewObjectDump.Items.Clear();
+                this.listViewObjectDump.Items.AddRange(this.controller.GetInstanceDump(address));
+                this.listViewObjectDump.EndUpdate();
+
+                var instanceInfo = this.controller.GetInstanceDumpDetails(address);
+                this.textBoxObjectDumpType.Text = instanceInfo.Name;
+                this.textBoxObjectDumpToString.Text = instanceInfo.String;
+                this.textBoxObjectDumpSize.Text = instanceInfo.TrueSize;
+            }
+            else
+            {
+                this.listViewObjectDump.BeginUpdate();
+                this.listViewObjectDump.Items.Clear();
+                this.listViewObjectDump.Items.AddRange(this.controller.GetInstanceDump(address, index));
+                this.listViewObjectDump.EndUpdate();
+
+                var instanceInfo = this.controller.GetInstanceDumpDetails(address, index);
+                this.textBoxObjectDumpType.Text = instanceInfo.Name;
+                this.textBoxObjectDumpToString.Text = instanceInfo.String;
+                this.textBoxObjectDumpSize.Text = instanceInfo.TrueSize;
+            }
+            currentInstance = ((ObjectInfo)button.Tag);
+        }
+
+        private void listViewHeap_DoubleClick(object sender, EventArgs e)
+        {
+            this.RefreshSelectedTypeInstances();
+        }
+
+        private void listViewInstances_DoubleClick(object sender, EventArgs e)
+        {
+            this.RefreshSelectedTypeObjectDump();
+        }
+
+        private void timerTypeFilter_Tick(object sender, EventArgs e)
+        {
+            this.timerTypeFilter.Enabled = false;
+            this.listViewHeap.BeginUpdate();
+            this.listViewHeap.Items.Clear();
+            this.listViewHeap.Items.AddRange(this.controller.FilterTypes(this.textBoxTypeSearch.Text));
+            this.listViewHeap.EndUpdate(); 
+        }
+
+        private void textBoxTypeSearch_TextChanged(object sender, EventArgs e)
+        {
+            this.timerTypeFilter.Enabled = false;
+            this.timerTypeFilter.Enabled = true;
+        }
+
+        private void listViewObjectDump_DoubleClick(object sender, EventArgs e)
+        {
+            if (this.listViewObjectDump.SelectedIndices != null && this.listViewObjectDump.SelectedIndices.Count > 0)
+            {
+                var selected = this.listViewObjectDump.Items[this.listViewObjectDump.SelectedIndices[0]];
+
+                var selectedType = selected.SubItems[1].Text;
+
+                var selectedAddress = selected.SubItems[3].Text;
+
+                if (selectedType.EndsWith("[]") || selectedType.Equals("SZARRAY"))
+                {
+                    // the type is an array, display the collection
+                    this.splitContainerObjectDumpDetails.Panel2Collapsed = false;
+                    this.listViewFieldArray.BeginUpdate();
+                    this.listViewFieldArray.Items.Clear();
+                    this.listViewFieldArray.Items.AddRange(this.controller.GetArrayInstances(selectedAddress));
+                    this.listViewFieldArray.EndUpdate(); 
+                }
+                else
+                {
+                    Button newInstance = CreateInstanceButton(selectedAddress);
+                    DisplayInstanceDetails(newInstance);
+                }
+            }
+        }
+
+        private void DisplayInstanceDetails(Button newInstance)
+        {            
+            if (!string.IsNullOrEmpty(newInstance.Text))
+            {
+                // search the current object in breadcrumb
+                List<Button> items = new List<Button>();
+                bool found = false;
+                foreach (var item in this.flowLayoutPanelBreadcrumb.Controls)
+                {
+                    Button button = item as Button;
+                    if (button != null)
+                    {
+                        if (!found)
+                        {
+                            items.Add(button);
+
+                            string addr = ((ObjectInfo)button.Tag).Address;
+                            string index = ((ObjectInfo)button.Tag).Index;
+                            if (object.Equals(currentInstance.Address,addr) && object.Equals(currentInstance.Index, index))
+                                found = true;
+                        }
+                    }
+                }
+
+                // remove all "after" items
+                this.flowLayoutPanelBreadcrumb.Controls.Clear();
+
+                // add new "selected" breadcrumb item                
+                items.Add(newInstance);
+
+                this.flowLayoutPanelBreadcrumb.Controls.AddRange(items.ToArray());
+
+                this.OnInstanceSelected(newInstance);
+
+            }
+        }
+
+        private void listViewProcesses_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            if(listViewProcesses.SelectedIndices.Count == 1)
+            {
+                this.toolStripButtonAttach.Enabled = true && !this.controller.Attached;
+            }
+            else
+            {
+                this.toolStripButtonAttach.Enabled = false;
+            }
+        }
+
+        private void listViewFieldArray_DoubleClick(object sender, EventArgs e)
+        {
+            if (this.listViewFieldArray.SelectedIndices != null && this.listViewFieldArray.SelectedIndices.Count > 0)
+            {
+                var selected = this.listViewFieldArray.Items[this.listViewFieldArray.SelectedIndices[0]];
+
+                var selectedField = this.listViewObjectDump.Items[this.listViewObjectDump.SelectedIndices[0]];
+
+                this.splitContainerObjectDumpDetails.Panel2Collapsed = true;
+                Button newInstance = CreateInstanceButton(selectedField.SubItems[3].Text, selected.SubItems[0].Text);
+                this.DisplayInstanceDetails(newInstance);
+            }
+        }
+    }
+}

File FormMain.resx

+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="toolStripSettings.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+  <metadata name="timerFilter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>159, 17</value>
+  </metadata>
+  <metadata name="timerTypeFilter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>266, 17</value>
+  </metadata>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAD///8A////AP///wD///8A////AP///wD///8A////AP///wAcWR/6HFce8f///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wAfYSLHHl4h/x1bICP///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8AJnMroSJtJ/whaST/IGYj/x9jIsX///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8AKnsuwSp5Lv9ooW//a6Jz/ypxLv8haCT/IWYlZB9i
+        IkEeXyHwHVwg/xxaHyP///8A////AP///wD///8AL4czwSB0I/+UwJ3/bK+C/02eZ/9wsIT/daZ6/yJr
+        Jf8haCT/IGUj+B9iInT///8A////AP///wD///8ANZI6hy2MMv93tYL/TZ5U/3mzjP9NoWr/Rppg/3Gw
+        hP82fTn/I24m/yNrJmT///8A////AP///wD///8A////ADKVN/VirWj/d76R/0SgXf9Ln1P/eLSM/06i
+        av9HnGL/cbGF/2qgb/8kcSf/I2woEv///wAgZiN8////AP///wAznDj4UqlZ/228jP9NqnD/Qp9c/0yi
+        VP+Dv5b/UaNt/0edY/+Jvpn/Jncq/yRzKP4jcCf/Imwm/////wA0pDnHM6E4/zOeOP+Uz6z/XLR+/06s
+        cv9BoV3/TqZX/4XBmP9XqHP/hr6Z/yp+Lf8meSr0JXYpbf///wA3rTz6Nqo7/zWnOqI4pT7qUK1W/43M
+        pf9etYD/T61z/0KjXf9Rqln/msup/46/lf8pgy7/JVk7r////wD///8AOLE+8TevPSP///8A////ADSm
+        Ov45pT//kM6o/2K5hP9Ysnv/YLJ2/ziXPv8piS3/V6Ri/yZQRNv///8A////AP///wD///8A////ADeu
+        PUE2qzz/OKk+8EWsS/+e1K3/pNe4/4XDjv8ojy3/T7df/5fIqv8sjTH/K4kw/yqFLv////8A////AP//
+        /wA4sz7wOLE9+P///wA4rD3xNag6/zSlOf80oTn/csJ+/6/jwv9fjHj/MmVNdf///wD///8A////AP//
+        /wD///8AOrdA/zm1P3T///8A////ADetPPg2qjvtRn9mpTqGUPcznTr+O3FYif///wD///8A////AP//
+        /wD///8A////ADu7QSP///8A////AP///wA4sj7/N689sk6OaiI1qTtlNKY68v///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8AOrc//zm0P0H///8AN649UjasPPf///8A////AP//
+        /wD///8A/58AAP8/AAD4PwAA8DMAAOAHAADADwAAwAcAAMAAAACAAwAAAAMAAHADAADwAAAA5AcAAO4H
+        AAD+bwAA/u8AAA==
+</value>
+  </data>
+</root>

File Model/AppDomainInfo.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace SOS.Net.Model
+{
+    public class AppDomainInfo
+    {
+        public string Address { get; set; }
+
+        public string Name { get; set; }
+    }
+}

File Model/ArrayInstanceInfo.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace SOS.Net.Model
+{
+    public class ArrayInstanceInfo
+    {
+        public string Number { get; set; }
+
+        public string Address { get; set; }
+    }
+}

File Model/AssemblyInfo.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace SOS.Net.Model
+{
+    public class AssemblyInfo
+    {
+        public string Address { get; set; }
+
+        public string Name { get; set; }
+    }
+}

File Model/CdbSettings.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace SOS.Net.Model
+{
+    public class CdbSettings
+    {
+        public string CdbPath { get; set; }
+
+        public string SosexPath { get; set; }
+    }
+}

File Model/InstanceInfo.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace SOS.Net.Model
+{
+    public class InstanceInfo
+    {
+        public string Address { get; set; }
+
+        public string Size { get; set; }
+    }
+}

File Model/ObjectFieldsInfo.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace SOS.Net.Model
+{
+    public class ObjectFieldsInfo
+    {
+        public string FieldAddress { get; set; }
+
+        public string TypeName { get; set; }
+
+        public string Value { get; set; }
+
+        public string FieldName { get; set; }
+
+        public string Attribut { get; set; }
+    }
+}

File Model/ObjectInfo.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace SOS.Net.Model
+{
+    public class ObjectInfo
+    {
+        public string Address { get; set; }
+
+        public string Index { get; set; }
+
+        public string Name { get; set; }
+
+        public string String { get; set; }
+
+        public string TrueSize { get; set; }
+    }
+}

File Model/TypeInfo.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace SOS.Net.Model
+{
+    public class TypeInfo
+    {
+        public string Address { get; set; }
+
+        public string Count { get; set; }
+
+        public string TotalSize { get; set; }
+
+        public string ClassName { get; set; }
+    }
+}
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Forms;
+
+namespace SOS.Net
+{
+    static class Program
+    {
+        /// <summary>
+        /// The main entry point for the application.
+        /// </summary>
+        [STAThread]
+        static void Main()
+        {
+            Application.EnableVisualStyles();
+            Application.SetCompatibleTextRenderingDefault(false);
+            Application.Run(new FormMain());
+        }
+    }
+}

File Properties/AssemblyInfo.cs

+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("SOS.Net")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("SOS.Net")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2010")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("60cbbf8c-7ec6-448e-a497-5e2fc8c8ace2")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

File Properties/Resources.Designer.cs

+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.4927
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace SOS.Net.Properties {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SOS.Net.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        internal static System.Drawing.Bitmap arrow_refresh {
+            get {
+                object obj = ResourceManager.GetObject("arrow_refresh", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        internal static System.Drawing.Bitmap connect {
+            get {
+                object obj = ResourceManager.GetObject("connect", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        internal static System.Drawing.Bitmap disconnect {
+            get {
+                object obj = ResourceManager.GetObject("disconnect", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        internal static System.Drawing.Bitmap disk {
+            get {
+                object obj = ResourceManager.GetObject("disk", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        internal static System.Drawing.Bitmap resultset_next {
+            get {
+                object obj = ResourceManager.GetObject("resultset_next", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        internal static System.Drawing.Bitmap stop {
+            get {
+                object obj = ResourceManager.GetObject("stop", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+    }
+}

File Properties/Resources.resx

+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="resultset_next" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\resultset_next.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="arrow_refresh" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\arrow_refresh.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="disk" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\disk.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="disconnect" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\disconnect.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="connect" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\connect.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="stop" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\stop.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>