Are you on MS Windows?
If, yes - on Windows only:
There is a known issue (either fpc, gdb or both) that could be what you describe.
If you "step over", gdb sometimes tries to "step in". And it does so, even if there is no debug info for the code that is called (that may be internal code / string handling or other).
That then opens the assembler.
--------
There is an option in
Tools > Options > Debugger
in the property grid:
"Fix incorrect step ..."
----------
Also in Lazarus 2.2 you can use FpDebug. This does not have the problem.