On 24/06/2017 07:23, Bo Berglund via Lazarus wrote:
I might add that I have visited:
  Tools/Options/Debugger/Language Exceptions
and unchecked the box "Notify on Lazarus Exceptions"
(which is a similar setting as in Delphi).
But it does not stop the IDE from breaking on the exception handler I
want to debug.
I need to stop the Lazarus debugger pop-up from triggering by the
exception and allow me to reach the exception handler instead.
How can this be accomplished?


Do you want it to "not stop at all"
Or do you want it to "stop in the except/finally block"?

If you want to get to the finally block, then you have to stop in the except first, and then do single steps. That should take you there.
There is no way to stop directly in the finally/except block.

If you do not want to stop at all, then that is "Notify on Lazarus Exceptions"
That is all exceptions by "raise ...".
Run errors are separate, so are Signals (SigSegV, Sig....). Signals can afaik not be suppressed.

"Notify on Lazarus Exceptions" just prevents the notification, internally the 
execution still stops, but is continued immediately.
If of course your code throws hundreds of exceptions, then that still is a slow 
down.
There is no option to prevent this.


For the handling of exceptions see
components\lazdebuggergdbmi\gdbmidebugger.pp line 5531
  procedure ProcessException;
nested in
function TGDBMIDebuggerCommandExecute.ProcessStopped

To prevent the internal stop in exceptions search the file for FExceptionBreak

You will find calls to
   FExceptionBreak.SetByAddr
or
   FExceptionBreak.SetBy....
   FExceptionBreak.SetBoth
   FExceptionBreak.SetAt...

Those need to be commented out.

--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
http://lists.lazarus-ide.org/listinfo/lazarus

Reply via email to