diff --git a/Implab.Diagnostics.Interactive/InteractiveListener.cs b/Implab.Diagnostics.Interactive/InteractiveListener.cs --- a/Implab.Diagnostics.Interactive/InteractiveListener.cs +++ b/Implab.Diagnostics.Interactive/InteractiveListener.cs @@ -56,7 +56,7 @@ namespace Implab.Diagnostics.Interactive if (m_queue.TryDequeue(out item)) { Interlocked.Decrement(ref m_queueLength); - m_syncGuiThread.Send(x => m_form.AddTraceEvent(item),null); + m_syncGuiThread.Post(x => m_form.AddTraceEvent(item),null); } else { m_queueEvent.WaitOne(); } @@ -113,7 +113,8 @@ namespace Implab.Diagnostics.Interactive Message = entry.ToString(), Thread = args.ThreadId, Channel = args.Channel.ToString(), - Timestamp = Environment.TickCount + Timestamp = Environment.TickCount, + TimeDelta = args.OperationTimeOffset }; Enqueue(item); diff --git a/Implab.Diagnostics.Interactive/TraceForm.Designer.cs b/Implab.Diagnostics.Interactive/TraceForm.Designer.cs --- a/Implab.Diagnostics.Interactive/TraceForm.Designer.cs +++ b/Implab.Diagnostics.Interactive/TraceForm.Designer.cs @@ -23,13 +23,14 @@ /// the contents of this method with the code editor. /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); this.eventsDataGrid = new System.Windows.Forms.DataGridView(); - this.traceViewItemBindingSource = new System.Windows.Forms.BindingSource(this.components); + this.traceViewItemBindingSource = new System.Windows.Forms.BindingSource(); this.threadDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.TimeDelta = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Channel = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.messageDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); ((System.ComponentModel.ISupportInitialize)(this.eventsDataGrid)).BeginInit(); @@ -56,20 +57,22 @@ this.eventsDataGrid.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.eventsDataGrid.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.threadDataGridViewTextBoxColumn, + this.TimeDelta, this.Channel, this.messageDataGridViewTextBoxColumn}); this.eventsDataGrid.DataSource = this.traceViewItemBindingSource; - dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle3.Font = new System.Drawing.Font("Lucida Console", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.ControlText; - dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.eventsDataGrid.DefaultCellStyle = dataGridViewCellStyle3; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle4.Font = new System.Drawing.Font("Lucida Console", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.eventsDataGrid.DefaultCellStyle = dataGridViewCellStyle4; this.eventsDataGrid.Location = new System.Drawing.Point(12, 12); this.eventsDataGrid.Name = "eventsDataGrid"; this.eventsDataGrid.ReadOnly = true; + this.eventsDataGrid.RowHeadersVisible = false; this.eventsDataGrid.RowHeadersWidth = 17; this.eventsDataGrid.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.False; this.eventsDataGrid.Size = new System.Drawing.Size(939, 480); @@ -82,31 +85,43 @@ // // threadDataGridViewTextBoxColumn // - this.threadDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader; + this.threadDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells; this.threadDataGridViewTextBoxColumn.DataPropertyName = "Thread"; this.threadDataGridViewTextBoxColumn.HeaderText = "TID"; this.threadDataGridViewTextBoxColumn.Name = "threadDataGridViewTextBoxColumn"; this.threadDataGridViewTextBoxColumn.ReadOnly = true; - this.threadDataGridViewTextBoxColumn.Width = 5; + this.threadDataGridViewTextBoxColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.threadDataGridViewTextBoxColumn.Width = 32; + // + // TimeDelta + // + this.TimeDelta.DataPropertyName = "TimeDelta"; + dataGridViewCellStyle2.Format = "\'+\' 0 \'ms\'"; + dataGridViewCellStyle2.NullValue = null; + this.TimeDelta.DefaultCellStyle = dataGridViewCellStyle2; + this.TimeDelta.HeaderText = "TimeDelta"; + this.TimeDelta.Name = "TimeDelta"; + this.TimeDelta.ReadOnly = true; + this.TimeDelta.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; // // Channel // - this.Channel.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells; this.Channel.DataPropertyName = "Channel"; this.Channel.HeaderText = "Channel"; this.Channel.Name = "Channel"; this.Channel.ReadOnly = true; - this.Channel.Width = 79; + this.Channel.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; // // messageDataGridViewTextBoxColumn // this.messageDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; this.messageDataGridViewTextBoxColumn.DataPropertyName = "FormattedMessage"; - dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.messageDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle2; + dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.messageDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle3; this.messageDataGridViewTextBoxColumn.HeaderText = "Message"; this.messageDataGridViewTextBoxColumn.Name = "messageDataGridViewTextBoxColumn"; this.messageDataGridViewTextBoxColumn.ReadOnly = true; + this.messageDataGridViewTextBoxColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; // // TraceForm // @@ -127,8 +142,8 @@ private System.Windows.Forms.DataGridView eventsDataGrid; private System.Windows.Forms.BindingSource traceViewItemBindingSource; private System.Windows.Forms.DataGridViewTextBoxColumn threadDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn TimeDelta; private System.Windows.Forms.DataGridViewTextBoxColumn Channel; private System.Windows.Forms.DataGridViewTextBoxColumn messageDataGridViewTextBoxColumn; - } } \ No newline at end of file diff --git a/Implab.Diagnostics.Interactive/TraceForm.resx b/Implab.Diagnostics.Interactive/TraceForm.resx --- a/Implab.Diagnostics.Interactive/TraceForm.resx +++ b/Implab.Diagnostics.Interactive/TraceForm.resx @@ -117,6 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True + True diff --git a/Implab.Diagnostics.Interactive/TraceViewItem.cs b/Implab.Diagnostics.Interactive/TraceViewItem.cs --- a/Implab.Diagnostics.Interactive/TraceViewItem.cs +++ b/Implab.Diagnostics.Interactive/TraceViewItem.cs @@ -9,6 +9,7 @@ namespace Implab.Diagnostics.Interactive string m_formattedValue; public string Message { get; set; } + public int TimeDelta { get; set; } public int Timestamp { get; set; } public int Indent { get; set; } public int Thread { get; set; }