mirror of https://gitlab.com/basile.b/dexed.git
fix #157 - after a gdb session breakpoints deleted from gutter not signaled
This commit is contained in:
parent
387b2afc81
commit
dae1d4c430
|
@ -242,8 +242,8 @@ type
|
||||||
destructor destroy; override;
|
destructor destroy; override;
|
||||||
function count: integer;
|
function count: integer;
|
||||||
procedure clearFile(const fname: string);
|
procedure clearFile(const fname: string);
|
||||||
procedure deleteItem(const fname: string; line: integer; kind: TBreakPointKind);
|
function deleteItem(const fname: string; line: integer; kind: TBreakPointKind): boolean;
|
||||||
procedure addItem(const fname: string; line: integer; kind: TBreakPointKind);
|
function addItem(const fname: string; line: integer; kind: TBreakPointKind): boolean;
|
||||||
property item[index: integer]: TPersistentBreakPoint read getItem; default;
|
property item[index: integer]: TPersistentBreakPoint read getItem; default;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -810,29 +810,33 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPersistentBreakPoints.addItem(const fname: string; line: integer; kind: TBreakPointKind);
|
function TPersistentBreakPoints.addItem(const fname: string; line: integer; kind: TBreakPointKind): boolean;
|
||||||
var
|
var
|
||||||
b: TPersistentBreakPoint;
|
b: TPersistentBreakPoint;
|
||||||
begin
|
begin
|
||||||
|
result := false;
|
||||||
if not find(fname, line, kind) then
|
if not find(fname, line, kind) then
|
||||||
begin
|
begin
|
||||||
b := TPersistentBreakPoint(fItems.Add);
|
b := TPersistentBreakPoint(fItems.Add);
|
||||||
b.filename:=fname;
|
b.filename:=fname;
|
||||||
b.line:=line;
|
b.line:=line;
|
||||||
b.kind:=kind;
|
b.kind:=kind;
|
||||||
|
result := true;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPersistentBreakPoints.deleteItem(const fname: string; line: integer; kind: TBreakPointKind);
|
function TPersistentBreakPoints.deleteItem(const fname: string; line: integer; kind: TBreakPointKind): boolean;
|
||||||
var
|
var
|
||||||
i: integer;
|
i: integer;
|
||||||
b: TPersistentBreakPoint;
|
b: TPersistentBreakPoint;
|
||||||
begin
|
begin
|
||||||
|
result := false;
|
||||||
for i := fItems.Count-1 downto 0 do
|
for i := fItems.Count-1 downto 0 do
|
||||||
begin
|
begin
|
||||||
b := item[i];
|
b := item[i];
|
||||||
if (b.filename = fname) and (b.line = line) and (b.kind = kind) then
|
if (b.filename = fname) and (b.line = line) and (b.kind = kind) then
|
||||||
begin
|
begin
|
||||||
|
result := true;
|
||||||
fItems.Delete(i);
|
fItems.Delete(i);
|
||||||
break;
|
break;
|
||||||
end;
|
end;
|
||||||
|
@ -1483,10 +1487,11 @@ procedure TCEGdbWidget.addBreakPoint(const fname: string; line: integer;
|
||||||
kind: TBreakPointKind = bpkBreak);
|
kind: TBreakPointKind = bpkBreak);
|
||||||
var
|
var
|
||||||
r: boolean;
|
r: boolean;
|
||||||
|
a: boolean = false;
|
||||||
begin
|
begin
|
||||||
if assigned(fBreakPoints) then
|
if assigned(fBreakPoints) then
|
||||||
fBreakPoints.addItem(fname, line, kind);
|
a := fBreakPoints.addItem(fname, line, kind);
|
||||||
if fGdb.isNil or not fGdb.Running then
|
if not a or fGdb.isNil or not fGdb.Running then
|
||||||
exit;
|
exit;
|
||||||
r := fGdbState = gsRunning;
|
r := fGdbState = gsRunning;
|
||||||
if r then
|
if r then
|
||||||
|
@ -1509,10 +1514,11 @@ procedure TCEGdbWidget.removeBreakPoint(const fname: string; line: integer;
|
||||||
kind: TBreakPointKind = bpkBreak);
|
kind: TBreakPointKind = bpkBreak);
|
||||||
var
|
var
|
||||||
r: boolean;
|
r: boolean;
|
||||||
|
d: boolean = false;
|
||||||
begin
|
begin
|
||||||
if assigned(fBreakPoints) then
|
if assigned(fBreakPoints) then
|
||||||
fBreakPoints.deleteItem(fname, line, kind);
|
d := fBreakPoints.deleteItem(fname, line, kind);
|
||||||
if fGdb.isNil or not fGdb.Running then
|
if not d or fGdb.isNil or not fGdb.Running then
|
||||||
exit;
|
exit;
|
||||||
r := fGdbState = gsRunning;
|
r := fGdbState = gsRunning;
|
||||||
if r then
|
if r then
|
||||||
|
|
|
@ -3372,7 +3372,6 @@ end;
|
||||||
|
|
||||||
procedure TCESynMemo.debugStop;
|
procedure TCESynMemo.debugStop;
|
||||||
begin
|
begin
|
||||||
fDebugger := nil;
|
|
||||||
removeDebugTimeMarks;
|
removeDebugTimeMarks;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue