When running outside the debugger it is possible something catches the exception and ignores it. You said it sometimes was slow, well that could be slowing it down.
You can continue to run in the debugger, and see if it continues.
You can try setting the backend to gdb. Maybe it shows more of the stack. FpDebug sometimes stops the stack early. Though, if you get into the RTL then gdb probably wont get more.
Also, if there was any bug in FpDebug, and indeed that bug was causing your issues, then that bug should not happen under gdb.
If you use gdb, you may want to change "debug info type" to "Dwarf 2 with sets" in the "project options" (menu: project > project options)
Do you have any breakpoints set?
Menu: View > Debug Windows > Breakpoints.
It is possible to set breakpoints directly to an address (e.g. in the asm window). If they were set, and the the app changed (or Windows got updated, and the kernel changed), then those addresses become invalid, and can cause havoc.
Other than that, I really can't tell much from the info I have.
I am not aware of FpDebug causing crashes. But then, "I am not aware" doesn't mean it couldn't still be...
=> Other than above mentioned breakpoints.
There is an issue with some versions of fpc, when using GDB => then even some valid breakpoints can cause issues. But I have not seen that under FpDebug. And if you remove all breakpoints then you should be fine.
You could also try with 4.0RC1
Some generic tips:
For testing, compile with different optimization settings.
E.g. Does it happen with "Optimization off" / "Level 0"?
Have you compiled with range checks and all other such checks?