Well, if gdb for your platform does not support this, then there is a problem.
Maybe a newer gdb will support this.
Without gdb async mode, Lazarus can not talk to gdb, while your app runs.
So if you try to change a breakpoint, or stop/pause the app, or any other debug action, while your app runs (not already stopped at a breakpoint) then the debugger will fail.
-----------------
No guarantee, but you can try this:
components\lazdebuggergdbmi\gdbmiserverdebugger.pas
line 120 TGDBMIServerDebuggerCommandInitDebugger.DoExecute
if not TGDBMIDebugger(FTheDebugger).AsyncModeEnabled then begin
SetDebuggerErrorState(GDBMiSNoAsyncMode);
FSuccess := False;
exit;
end;
comment that block of code. and rebuild the IDE.
This will disable the check, but I am not sure if the debugger will work.
If it does, see above, it will break, if you toggle breakpoints.
So if it does work, you must
- set all breakpoint, before you run your app (or while stopped at a breakpoint, or stopped after stepping)
- never use the pause or stop button
- disable the debugger hint, or never trigger it, while the app is running