Ok, forgot to ask, what version of Lazarus do you use? (I can infer from the dll link that you are on 64bit Windows)
1. the IDE title says still "debugging..."
So then it is still debugging. Just for some reason not telling you that/where/if it paused...
With the original issue (fpdebug)
1) Check the run/pause buttons in the main bar. Is the green run button enabled? Then the app is paused
2) Check menu View > debug windows > callstack
It should show something, likely you are paused in some dll
Normally in such cases the assemble window opens....
If it is paused still leaves the question why gdb does not enter pause.
4. i changed the debugger backend from FpDebug to GDB.
Now it works flawlessly! What could be the reason? Why does it not work with FpDebug?
Looking at your screenshot...
1) You have a breakpoint on the "unit" line
2) You are paused at the unit line.
Normally, that "unit" line does not produce code, and you can't pause there.
If (in case of normally) there is no code there, then
- FpDebug will ignore such a breakpoint
- GDB will break at the first line of code below that => that will be potentially 100 lines later, in the very first procedure of the unit.
And if it isn't "normally".... And I am not sure that applies here. I have seen similar but not exactly...
But you seem to be paused on that line, and that means it isn't "normally".
Sometimes FPC generates incorrect line info. (especially if you have optimization enabled, but sometimes even without that). In that case the "unit" line would most likely be attributed to the last line of code in some other unit (really complex underlaying issue).
So if it is not normally, have a look at the callstack, and the name of the procedure it says on the first line of the callstack
As for how to get it work => remove the breakpoint from that "unit MainMenu" line.
Check for other breakpoints in places that aren't inside a procedure.