#362 - put breakpoints using MI syntax

note that deletion is still broken
This commit is contained in:
Basile Burg 2018-09-23 18:40:22 +02:00
parent 7a34a833d9
commit fc93ecbc8e
1 changed files with 22 additions and 22 deletions

View File

@ -1552,7 +1552,7 @@ begin
waitCommandProcessed; waitCommandProcessed;
fSilentPause := false; fSilentPause := false;
end; end;
gdbCommand('break ' + fname + ':' + intToStr(line)); gdbCommand(format('-break-insert --source %s --line %d', [fname, line]) + #10);
if r then if r then
begin begin
fSilentPause := true; fSilentPause := true;
@ -1580,7 +1580,7 @@ begin
waitCommandProcessed; waitCommandProcessed;
fSilentPause := false; fSilentPause := false;
end; end;
gdbCommand('clear ' + fname + ':' + intToStr(line)); gdbCommand(format('-break-delete --source %s --line %d', [fname, line]) + #10);
if r then if r then
begin begin
fSilentPause := true; fSilentPause := true;
@ -1777,7 +1777,7 @@ begin
case b.kind of case b.kind of
bpkBreak: bpkBreak:
begin begin
str := 'break ' + b.filename + ':' + intToStr(b.line) + #10; str := format('-break-insert --source %s --line %d', [b.filename, b.line]) + #10;
fGdb.Input.Write(str[1], str.length); fGdb.Input.Write(str[1], str.length);
end; end;
bpkWatch: {TODO-cGDB: put watchpoint from persistent}; bpkWatch: {TODO-cGDB: put watchpoint from persistent};
@ -1785,24 +1785,24 @@ begin
end; end;
gdbCommand('set disassembly-flavor ' + asmFlavorStr[fOptions.asmSyntax]); gdbCommand('set disassembly-flavor ' + asmFlavorStr[fOptions.asmSyntax]);
// break on druntime exceptions + any throw' // break on druntime exceptions + any throw'
gdbCommand('break onAssertError'); gdbCommand('-break-insert --function onAssertError');
gdbCommand('break onAssertErrorMsg'); gdbCommand('-break-insert --function onAssertErrorMsg');
gdbCommand('break onUnittestErrorMsg'); gdbCommand('-break-insert --function onUnittestErrorMsg');
gdbCommand('break onRangeError'); gdbCommand('-break-insert --function onRangeError');
gdbCommand('break onFinalizeError'); gdbCommand('-break-insert --function onFinalizeError');
gdbCommand('break onHiddenFuncError'); gdbCommand('-break-insert --function onHiddenFuncError');
gdbCommand('break onOutOfMemoryError'); gdbCommand('-break-insert --function onOutOfMemoryError');
gdbCommand('break onInvalidMemoryOperationError'); gdbCommand('-break-insert --function onInvalidMemoryOperationError');
gdbCommand('break onSwitchError'); gdbCommand('-break-insert --function onSwitchError');
gdbCommand('break onUnicodeError'); gdbCommand('-break-insert --function onUnicodeError');
gdbCommand('break _d_throwc'); gdbCommand('-break-insert --function _d_throwc');
gdbCommand('break _d_throwdwarf'); gdbCommand('-break-insert --function _d_throwdwarf');
gdbCommand('break _d_assertm'); gdbCommand('-break-insert --function _d_assertm');
gdbCommand('break _d_assert'); gdbCommand('-break-insert --function _d_assert');
gdbCommand('break _d_assert_msg'); gdbCommand('-break-insert --function _d_assert_msg');
gdbCommand('break _d_array_bounds'); gdbCommand('-break-insert --function _d_array_bounds');
gdbCommand('break _d_arraybounds'); gdbCommand('-break-insert --function _d_arraybounds');
gdbCommand('break _d_switch_error'); gdbCommand('-break-insert --function _d_switch_error');
gdbCommand('-gdb-set mi-async on'); gdbCommand('-gdb-set mi-async on');
if fOptions.stopAllThreadsOnBreak then if fOptions.stopAllThreadsOnBreak then
gdbCommand('-gdb-set non-stop off') gdbCommand('-gdb-set non-stop off')
@ -1833,7 +1833,7 @@ begin
str += o.arguments[i] + ' '; str += o.arguments[i] + ' ';
str := fSyms.expand(str); str := fSyms.expand(str);
end; end;
gdbCommand('set args '+ str + '> ' + fOutputName + '< ' + fInputName); gdbCommand('-exec-arguments '+ str + '> ' + fOutputName + '< ' + fInputName);
// non-MI command "run" has the same problem as https://sourceware.org/bugzilla/show_bug.cgi?id=18077 // non-MI command "run" has the same problem as https://sourceware.org/bugzilla/show_bug.cgi?id=18077
gdbCommand('-exec-run'); gdbCommand('-exec-run');
setState(gsRunning); setState(gsRunning);