#97, next & step, add dropdown to set if cmd is applied at src or hwd level

This commit is contained in:
Basile Burg 2016-11-28 04:33:33 +01:00
parent 9eda998779
commit 0d76b2250b
No known key found for this signature in database
GPG Key ID: 1868039F415CB8CF
2 changed files with 42 additions and 13 deletions

View File

@ -3,6 +3,7 @@ inherited CEGdbWidget: TCEGdbWidget
Height = 668 Height = 668
Top = 333 Top = 333
Width = 517 Width = 517
ActiveControl = Splitter2
Caption = 'GDB commander' Caption = 'GDB commander'
ClientHeight = 668 ClientHeight = 668
ClientWidth = 517 ClientWidth = 517
@ -251,6 +252,7 @@ inherited CEGdbWidget: TCEGdbWidget
Top = 0 Top = 0
Width = 509 Width = 509
Align = alClient Align = alClient
AutoWidthLastColumn = True
Columns = < Columns = <
item item
AutoSize = True AutoSize = True
@ -283,7 +285,6 @@ inherited CEGdbWidget: TCEGdbWidget
Width = 64 Width = 64
end end
item item
AutoSize = True
Caption = 'line' Caption = 'line'
Width = 200 Width = 200
end> end>
@ -299,7 +300,7 @@ inherited CEGdbWidget: TCEGdbWidget
inherited toolbar: TCEToolBar inherited toolbar: TCEToolBar
Width = 509 Width = 509
object btnStack: TCEToolButton[0] object btnStack: TCEToolButton[0]
Left = 225 Left = 249
Hint = 'view call stack' Hint = 'view call stack'
Top = 0 Top = 0
Caption = 'btnStack' Caption = 'btnStack'
@ -308,7 +309,7 @@ inherited CEGdbWidget: TCEGdbWidget
scaledSeparator = False scaledSeparator = False
end end
object btnReg: TCEToolButton[1] object btnReg: TCEToolButton[1]
Left = 197 Left = 221
Hint = 'update CPU registers values' Hint = 'update CPU registers values'
Top = 0 Top = 0
Caption = 'btnReg' Caption = 'btnReg'
@ -317,7 +318,7 @@ inherited CEGdbWidget: TCEGdbWidget
scaledSeparator = False scaledSeparator = False
end end
object button4: TCEToolButton[2] object button4: TCEToolButton[2]
Left = 181 Left = 205
Height = 28 Height = 28
Top = 0 Top = 0
Width = 16 Width = 16
@ -357,21 +358,25 @@ inherited CEGdbWidget: TCEGdbWidget
Hint = 'step to next instruction, including in calls' Hint = 'step to next instruction, including in calls'
Top = 0 Top = 0
Caption = 'btnNext' Caption = 'btnNext'
DropdownMenu = mnuNext
OnClick = btnNextClick OnClick = btnNextClick
Style = tbsDropDown
resourceName = 'GO_DOWN' resourceName = 'GO_DOWN'
scaledSeparator = False scaledSeparator = False
end end
object btnOver: TCEToolButton[7] object btnOver: TCEToolButton[7]
Left = 153 Left = 165
Hint = 'step to the next instruction, excluding calls' Hint = 'step to the next instruction, excluding calls'
Top = 0 Top = 0
Caption = 'btnOver' Caption = 'btnOver'
DropdownMenu = mnuStep
OnClick = btnOverClick OnClick = btnOverClick
Style = tbsDropDown
resourceName = 'GO_JUMP' resourceName = 'GO_JUMP'
scaledSeparator = False scaledSeparator = False
end end
object btnVariables: TCEToolButton[8] object btnVariables: TCEToolButton[8]
Left = 253 Left = 277
Hint = 'update variables list' Hint = 'update variables list'
Top = 0 Top = 0
Caption = 'btnVariables' Caption = 'btnVariables'
@ -391,7 +396,7 @@ inherited CEGdbWidget: TCEGdbWidget
scaledSeparator = False scaledSeparator = False
end end
object btnWatch: TCEToolButton[10] object btnWatch: TCEToolButton[10]
Left = 281 Left = 305
Hint = 'add a watchpoint for the variable selected in the list' Hint = 'add a watchpoint for the variable selected in the list'
Top = 0 Top = 0
Caption = 'btnWatch' Caption = 'btnWatch'
@ -417,8 +422,8 @@ inherited CEGdbWidget: TCEGdbWidget
top = 64 top = 64
end end
object mnuProjRunnable: TPopupMenu[3] object mnuProjRunnable: TPopupMenu[3]
left = 144 left = 56
top = 64 top = 112
object mnuSelProj: TMenuItem object mnuSelProj: TMenuItem
AutoCheck = True AutoCheck = True
Caption = 'Debug project' Caption = 'Debug project'
@ -432,8 +437,8 @@ inherited CEGdbWidget: TCEGdbWidget
end end
end end
object mnuWatch: TPopupMenu[4] object mnuWatch: TPopupMenu[4]
left = 144 left = 56
top = 128 top = 160
object mnuReadW: TMenuItem object mnuReadW: TMenuItem
AutoCheck = True AutoCheck = True
Caption = 'On read' Caption = 'On read'
@ -451,4 +456,20 @@ inherited CEGdbWidget: TCEGdbWidget
OnClick = mnuReadWriteWClick OnClick = mnuReadWriteWClick
end end
end end
object mnuNext: TPopupMenu[5]
left = 152
top = 112
object mnuNextMachine: TMenuItem
AutoCheck = True
Caption = 'machine instruction'
end
end
object mnuStep: TPopupMenu[6]
left = 152
top = 160
object mnuStepMachine: TMenuItem
AutoCheck = True
Caption = 'machine instruction'
end
end
end end

View File

@ -334,8 +334,12 @@ type
Edit1: TComboBox; Edit1: TComboBox;
GroupBox3: TGroupBox; GroupBox3: TGroupBox;
lstThreads: TListView; lstThreads: TListView;
mnuNextMachine: TMenuItem;
mnuStepMachine: TMenuItem;
mnuStep: TPopupMenu;
PageControl1: TPageControl; PageControl1: TPageControl;
PageControl2: TPageControl; PageControl2: TPageControl;
mnuNext: TPopupMenu;
TabSheet1: TTabSheet; TabSheet1: TTabSheet;
TabSheet2: TTabSheet; TabSheet2: TTabSheet;
TabSheet3: TTabSheet; TabSheet3: TTabSheet;
@ -2217,15 +2221,19 @@ begin
end; end;
procedure TCEGdbWidget.btnNextClick(Sender: TObject); procedure TCEGdbWidget.btnNextClick(Sender: TObject);
const
cmd: array[boolean] of string = ('-exec-step','-exec-step-instruction');
begin begin
gdbCommand('step', @gdboutJsonize); gdbCommand(cmd[mnuNextMachine.Checked], @gdboutJsonize);
if assigned(fGdb) and fgdb.Running then if assigned(fGdb) and fgdb.Running then
setState(gsRunning); setState(gsRunning);
end; end;
procedure TCEGdbWidget.btnOverClick(Sender: TObject); procedure TCEGdbWidget.btnOverClick(Sender: TObject);
const
cmd: array[boolean] of string = ('-exec-next','-exec-next-instruction');
begin begin
gdbCommand('next', @gdboutJsonize); gdbCommand(cmd[mnuStepMachine.Checked], @gdboutJsonize);
if assigned(fGdb) and fgdb.Running then if assigned(fGdb) and fgdb.Running then
setState(gsRunning); setState(gsRunning);
end; end;