mirror of https://gitlab.com/basile.b/dexed.git
#97, rename consistently the list + clear them all together
This commit is contained in:
parent
0d76b2250b
commit
450375e6e9
|
@ -3,7 +3,6 @@ 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
|
||||||
|
@ -38,7 +37,7 @@ inherited CEGdbWidget: TCEGdbWidget
|
||||||
ClientHeight = 149
|
ClientHeight = 149
|
||||||
ClientWidth = 513
|
ClientWidth = 513
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
object cpuVIewer: TTIPropertyGrid
|
object cpuViewer: TTIPropertyGrid
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 149
|
Height = 149
|
||||||
Hint = 'cpu registers'
|
Hint = 'cpu registers'
|
||||||
|
@ -78,7 +77,7 @@ inherited CEGdbWidget: TCEGdbWidget
|
||||||
Caption = 'Variables'
|
Caption = 'Variables'
|
||||||
ClientHeight = 164
|
ClientHeight = 164
|
||||||
ClientWidth = 509
|
ClientWidth = 509
|
||||||
object varList: TListView
|
object lstVariables: TListView
|
||||||
Left = 2
|
Left = 2
|
||||||
Height = 138
|
Height = 138
|
||||||
Top = 24
|
Top = 24
|
||||||
|
@ -124,7 +123,7 @@ inherited CEGdbWidget: TCEGdbWidget
|
||||||
Caption = 'Assembly'
|
Caption = 'Assembly'
|
||||||
ClientHeight = 164
|
ClientHeight = 164
|
||||||
ClientWidth = 509
|
ClientWidth = 509
|
||||||
object asmList: TListView
|
object lstAsm: TListView
|
||||||
Left = 2
|
Left = 2
|
||||||
Height = 160
|
Height = 160
|
||||||
Top = 2
|
Top = 2
|
||||||
|
|
|
@ -344,7 +344,7 @@ type
|
||||||
TabSheet2: TTabSheet;
|
TabSheet2: TTabSheet;
|
||||||
TabSheet3: TTabSheet;
|
TabSheet3: TTabSheet;
|
||||||
TabSheet4: TTabSheet;
|
TabSheet4: TTabSheet;
|
||||||
varList: TListView;
|
lstVariables: TListView;
|
||||||
lstCallStack: TListView;
|
lstCallStack: TListView;
|
||||||
mnuReadW: TMenuItem;
|
mnuReadW: TMenuItem;
|
||||||
mnuWriteW: TMenuItem;
|
mnuWriteW: TMenuItem;
|
||||||
|
@ -354,13 +354,13 @@ type
|
||||||
Panel1: TPanel;
|
Panel1: TPanel;
|
||||||
Panel3: TPanel;
|
Panel3: TPanel;
|
||||||
btnSendCom: TSpeedButton;
|
btnSendCom: TSpeedButton;
|
||||||
cpuVIewer: TTIPropertyGrid;
|
cpuViewer: TTIPropertyGrid;
|
||||||
mnuProjRunnable: TPopupMenu;
|
mnuProjRunnable: TPopupMenu;
|
||||||
mnuWatch: TPopupMenu;
|
mnuWatch: TPopupMenu;
|
||||||
Splitter2: TSplitter;
|
Splitter2: TSplitter;
|
||||||
Splitter3: TSplitter;
|
Splitter3: TSplitter;
|
||||||
Splitter4: TSplitter;
|
Splitter4: TSplitter;
|
||||||
asmList: TListView;
|
lstAsm: TListView;
|
||||||
varListFlt: TListViewFilterEdit;
|
varListFlt: TListViewFilterEdit;
|
||||||
procedure btnContClick(Sender: TObject);
|
procedure btnContClick(Sender: TObject);
|
||||||
procedure btnVariablesClick(Sender: TObject);
|
procedure btnVariablesClick(Sender: TObject);
|
||||||
|
@ -414,6 +414,7 @@ type
|
||||||
fLastFunction: string;
|
fLastFunction: string;
|
||||||
fLastOffset: string;
|
fLastOffset: string;
|
||||||
fLastLine: string;
|
fLastLine: string;
|
||||||
|
procedure clearDisplays;
|
||||||
procedure updateMenu;
|
procedure updateMenu;
|
||||||
procedure optionsChangesApplied(sender: TObject);
|
procedure optionsChangesApplied(sender: TObject);
|
||||||
procedure disableEditor;
|
procedure disableEditor;
|
||||||
|
@ -966,7 +967,6 @@ begin
|
||||||
fMsg:= getMessageDisplay;
|
fMsg:= getMessageDisplay;
|
||||||
fLog := TStringList.Create;
|
fLog := TStringList.Create;
|
||||||
fInspState := TInspectableCPU.Create(@setGpr, @setSsr, @setFlag, @setFpr);
|
fInspState := TInspectableCPU.Create(@setGpr, @setSsr, @setFlag, @setFpr);
|
||||||
cpuVIewer.TIObject := fInspState;
|
|
||||||
fJson := TJsonObject.Create;
|
fJson := TJsonObject.Create;
|
||||||
fStackItems := TStackItems.create;
|
fStackItems := TStackItems.create;
|
||||||
fSubj:= TCEDebugObserverSubject.Create;
|
fSubj:= TCEDebugObserverSubject.Create;
|
||||||
|
@ -1130,6 +1130,16 @@ begin
|
||||||
bmp.Free;
|
bmp.Free;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCEGdbWidget.clearDisplays;
|
||||||
|
begin
|
||||||
|
lstVariables.Clear;
|
||||||
|
lstCallStack.Clear;
|
||||||
|
lstThreads.Clear;
|
||||||
|
lstAsm.Clear;
|
||||||
|
cpuViewer.Clear;
|
||||||
|
cpuViewer.TIObject := nil;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCEGdbWidget.optionsChangesApplied(sender: TObject);
|
procedure TCEGdbWidget.optionsChangesApplied(sender: TObject);
|
||||||
begin
|
begin
|
||||||
updateMenu;
|
updateMenu;
|
||||||
|
@ -1304,7 +1314,7 @@ begin
|
||||||
btnReg.Enabled:=false;
|
btnReg.Enabled:=false;
|
||||||
btnVariables.Enabled:=false;
|
btnVariables.Enabled:=false;
|
||||||
btnStack.Enabled:=false;
|
btnStack.Enabled:=false;
|
||||||
varList.Clear;
|
clearDisplays;
|
||||||
end;
|
end;
|
||||||
gsPaused:
|
gsPaused:
|
||||||
begin
|
begin
|
||||||
|
@ -1364,18 +1374,18 @@ var
|
||||||
begin
|
begin
|
||||||
if varListFlt.Filter = '' then
|
if varListFlt.Filter = '' then
|
||||||
exit;
|
exit;
|
||||||
for i:= 0 to varList.Items.Count-1 do
|
for i:= 0 to lstVariables.Items.Count-1 do
|
||||||
if AnsiContainsText(varList.Items[i].Caption, varListFlt.Filter) then
|
if AnsiContainsText(lstVariables.Items[i].Caption, varListFlt.Filter) then
|
||||||
begin
|
begin
|
||||||
varList.ItemIndex:=i;
|
lstVariables.ItemIndex:=i;
|
||||||
varList.Selected.MakeVisible(false);
|
lstVariables.Selected.MakeVisible(false);
|
||||||
break;
|
break;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEGdbWidget.disableEditor;
|
procedure TCEGdbWidget.disableEditor;
|
||||||
begin
|
begin
|
||||||
cpuVIewer.ItemIndex:=-1;
|
cpuViewer.ItemIndex:=-1;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEGdbWidget.startDebugging;
|
procedure TCEGdbWidget.startDebugging;
|
||||||
|
@ -1385,7 +1395,7 @@ var
|
||||||
i: integer;
|
i: integer;
|
||||||
b: TPersistentBreakPoint;
|
b: TPersistentBreakPoint;
|
||||||
begin
|
begin
|
||||||
varList.Clear;
|
clearDisplays;
|
||||||
if not fDbgRunnable and (fProj = nil) then
|
if not fDbgRunnable and (fProj = nil) then
|
||||||
begin
|
begin
|
||||||
dlgOkInfo('No project to debug', 'GDB commander');
|
dlgOkInfo('No project to debug', 'GDB commander');
|
||||||
|
@ -1452,7 +1462,6 @@ begin
|
||||||
bpkBreak: str := 'break ' + b.filename + ':' + intToStr(b.line) + #10;
|
bpkBreak: str := 'break ' + b.filename + ':' + intToStr(b.line) + #10;
|
||||||
bpkWatch: {TODO-cGDB: put watchpoint from persistent};
|
bpkWatch: {TODO-cGDB: put watchpoint from persistent};
|
||||||
end;
|
end;
|
||||||
|
|
||||||
fGdb.Input.Write(str[1], str.length);
|
fGdb.Input.Write(str[1], str.length);
|
||||||
end;
|
end;
|
||||||
// break on druntime exceptions + any throw'
|
// break on druntime exceptions + any throw'
|
||||||
|
@ -1477,6 +1486,8 @@ begin
|
||||||
gdbCommand('-gdb-set mi-async on');
|
gdbCommand('-gdb-set mi-async on');
|
||||||
fGdb.OnReadData := @gdboutJsonize;
|
fGdb.OnReadData := @gdboutJsonize;
|
||||||
// launch
|
// launch
|
||||||
|
cpuViewer.TIObject := fInspState;
|
||||||
|
cpuViewer.RefreshPropertyValues;
|
||||||
gdbCommand('run >' + fOutputName + '< ' + fInputName);
|
gdbCommand('run >' + fOutputName + '< ' + fInputName);
|
||||||
setState(gsRunning);
|
setState(gsRunning);
|
||||||
end;
|
end;
|
||||||
|
@ -1694,7 +1705,7 @@ procedure TCEGdbWidget.interpretJson;
|
||||||
var
|
var
|
||||||
itm: TListItem;
|
itm: TListItem;
|
||||||
begin
|
begin
|
||||||
itm := asmList.FindCaption(0, fLastOffset, false, true, false);
|
itm := lstAsm.FindCaption(0, fLastOffset, false, true, false);
|
||||||
if itm.isNotNil then
|
if itm.isNotNil then
|
||||||
begin
|
begin
|
||||||
itm.Selected:=true;
|
itm.Selected:=true;
|
||||||
|
@ -1761,10 +1772,10 @@ begin
|
||||||
val := obj.Find('exp');
|
val := obj.Find('exp');
|
||||||
if val.isNotNil then
|
if val.isNotNil then
|
||||||
begin
|
begin
|
||||||
k := varList.FindCaption(0, val.AsString, false, true, false);
|
k := lstVariables.FindCaption(0, val.AsString, false, true, false);
|
||||||
if k.isNotNil then
|
if k.isNotNil then
|
||||||
begin
|
begin
|
||||||
varList.ItemIndex:=k.index;
|
lstVariables.ItemIndex:=k.index;
|
||||||
k.MakeVisible(false);
|
k.MakeVisible(false);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
@ -1938,7 +1949,7 @@ begin
|
||||||
// TODO-cGDB: get SSE registers
|
// TODO-cGDB: get SSE registers
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
cpuVIewer.RefreshPropertyValues;
|
cpuViewer.RefreshPropertyValues;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
val := fJson.Find('stack');
|
val := fJson.Find('stack');
|
||||||
|
@ -1979,9 +1990,9 @@ begin
|
||||||
val := fJson.Find('locals');
|
val := fJson.Find('locals');
|
||||||
if val.isNotNil and (val.JSONType = jtArray) then
|
if val.isNotNil and (val.JSONType = jtArray) then
|
||||||
begin
|
begin
|
||||||
j := varList.ItemIndex;
|
j := lstVariables.ItemIndex;
|
||||||
varList.BeginUpdate;
|
lstVariables.BeginUpdate;
|
||||||
varList.Clear;
|
lstVariables.Clear;
|
||||||
arr := TJSONArray(val);
|
arr := TJSONArray(val);
|
||||||
for i := 0 to arr.Count-1 do
|
for i := 0 to arr.Count-1 do
|
||||||
begin
|
begin
|
||||||
|
@ -1996,20 +2007,20 @@ begin
|
||||||
val := obj.Find('value');
|
val := obj.Find('value');
|
||||||
if val.isNil then
|
if val.isNil then
|
||||||
continue;
|
continue;
|
||||||
varList.AddItem(nme, nil);
|
lstVariables.AddItem(nme, nil);
|
||||||
with varList.Items[varList.Items.Count-1] do
|
with lstVariables.Items[lstVariables.Items.Count-1] do
|
||||||
SubItems.Add(val.AsString);
|
SubItems.Add(val.AsString);
|
||||||
end;
|
end;
|
||||||
if (j <> -1) and (j <= varList.Items.Count) then
|
if (j <> -1) and (j <= lstVariables.Items.Count) then
|
||||||
varList.ItemIndex := j;
|
lstVariables.ItemIndex := j;
|
||||||
varList.EndUpdate;
|
lstVariables.EndUpdate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
val := fJson.Find('asm_insns');
|
val := fJson.Find('asm_insns');
|
||||||
if val.isNotNil and (val.JSONType = jtArray) then
|
if val.isNotNil and (val.JSONType = jtArray) then
|
||||||
begin
|
begin
|
||||||
asmList.BeginUpdate;
|
lstAsm.BeginUpdate;
|
||||||
asmList.Clear;
|
lstAsm.Clear;
|
||||||
arr := TJSONArray(val);
|
arr := TJSONArray(val);
|
||||||
for i := 0 to arr.Count-1 do
|
for i := 0 to arr.Count-1 do
|
||||||
begin
|
begin
|
||||||
|
@ -2022,18 +2033,18 @@ begin
|
||||||
val := obj.Find('inst');
|
val := obj.Find('inst');
|
||||||
if val.isNotNil then
|
if val.isNotNil then
|
||||||
begin
|
begin
|
||||||
asmList.AddItem(nme, nil);
|
lstAsm.AddItem(nme, nil);
|
||||||
if nme = fLastOffset then
|
if nme = fLastOffset then
|
||||||
asmList.Selected := asmList.Items[asmList.Items.Count-1];
|
lstAsm.Selected := lstAsm.Items[lstAsm.Items.Count-1];
|
||||||
if fOptions.autoDemangle then
|
if fOptions.autoDemangle then
|
||||||
asmList.Items[asmList.Items.Count-1].SubItems.Add(demangle(val.AsString))
|
lstAsm.Items[lstAsm.Items.Count-1].SubItems.Add(demangle(val.AsString))
|
||||||
else
|
else
|
||||||
asmList.Items[asmList.Items.Count-1].SubItems.Add(val.AsString);
|
lstAsm.Items[lstAsm.Items.Count-1].SubItems.Add(val.AsString);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
if asmList.Selected.isNotNil then
|
if lstAsm.Selected.isNotNil then
|
||||||
asmList.Selected.MakeVisible(false);
|
lstAsm.Selected.MakeVisible(false);
|
||||||
asmList.EndUpdate;
|
lstAsm.EndUpdate;
|
||||||
selectAsmInstr;
|
selectAsmInstr;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -2269,9 +2280,9 @@ const
|
||||||
var
|
var
|
||||||
nme: string;
|
nme: string;
|
||||||
begin
|
begin
|
||||||
if varList.ItemIndex = -1 then
|
if lstVariables.ItemIndex = -1 then
|
||||||
exit;
|
exit;
|
||||||
nme := varList.Items[varList.ItemIndex].Caption;
|
nme := lstVariables.Items[lstVariables.ItemIndex].Caption;
|
||||||
gdbCommand(cmd[fAddWatchPointKind] + nme);
|
gdbCommand(cmd[fAddWatchPointKind] + nme);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue