fix #197 - GDB sync issues due to non stop mode

This commit is contained in:
Basile Burg 2017-10-30 04:32:43 +01:00
parent e1288094ab
commit debbe9001c
No known key found for this signature in database
GPG Key ID: 1868039F415CB8CF
1 changed files with 7 additions and 9 deletions

View File

@ -1481,12 +1481,7 @@ var
i: integer = 0;
begin
while not fCommandProcessed do
begin
application.ProcessMessages;
i += 1;
if i = high(integer) then
i := 0;
end;
end;
procedure TCEGdbWidget.addBreakPoint(const fname: string; line: integer;
@ -1514,6 +1509,7 @@ begin
begin
fSilentPause := true;
gdbCommand('-exec-continue --all', @gdboutJsonize);
waitCommandProcessed;
fSilentPause := false;
end;
end;
@ -1541,6 +1537,7 @@ begin
begin
fSilentPause := true;
gdbCommand('-exec-continue --all', @gdboutJsonize);
waitCommandProcessed;
fSilentPause := false;
end;
end;
@ -1759,10 +1756,10 @@ begin
gdbCommand('break _d_arraybounds');
gdbCommand('break _d_switch_error');
gdbCommand('-gdb-set mi-async on');
if not fOptions.stopAllThreadsOnBreak then
gdbCommand('-gdb-set non-stop on')
if fOptions.stopAllThreadsOnBreak then
gdbCommand('-gdb-set non-stop off')
else
gdbCommand('-gdb-set non-stop off');
gdbCommand('-gdb-set non-stop on');
fGdb.OnReadData := @gdboutJsonize;
cpuViewer.TIObject := fInspState;
cpuViewer.RefreshPropertyValues;
@ -2408,7 +2405,6 @@ procedure TCEGdbWidget.gdboutJsonize(sender: TObject);
var
str: string;
begin
fCommandProcessed := true;
if fMsg = nil then
exit;
@ -2418,6 +2414,8 @@ begin
for str in fLog do
fMsg.message(str, nil, amcMisc, amkAuto);
fCommandProcessed := true;
if flog.Text.isEmpty then
exit;