Need a bit more detail...
When you do "attach" and choose the program. Then the program would still be running => so the pause button should be active, but not the run or step buttons.
Though it may be dependent on Lazarus version, maybe the app is paused. In that case run it, and later pause it.
Then when you hit pause => you should be getting the asm view, and should be able to single step asm instructions.
Now if your main app has debug info (in a version readable to the debugger) then you should be able to set breakpoints, and once you reach a breakpoint you should be able to single step.
What I don't know... You have the debug info in a library. And there may be a problem (may or may not be / I am not sure). Because on attach the debugger (at least fpdebug, I don't know the internals of gdb) reads debug info of the main app. But I am not sure if it reads debug info of the library.
At least fpdebug usually reads debug info for libraries when the lib is loaded. But when attaching that may have happened when the debugger was not looking...
So the real question here is, when you pause the app => and you have files for the library open in the IDE editor => do they show little blue dots in the gutter? If not then debug info wasn't loaded, or the filename is not detected correctly.
You can try to set the external app as launch application in "run" > "Run Parameters" => and then it runs in the debugger, and the debugger should see when the lib is loaded.