[Lazarus] BreakIf

JuuS JuuS at mykolab.ch
Fri Mar 27 14:31:50 CET 2015



On 03/27/2015 02:17 PM, Joost van der Sluis wrote:
> On 03/27/2015 01:45 PM, JuuS wrote:
>> procedure BreakIf( b : Boolean );
>> begin
>>   if b then
>>   asm
>>     INT 3    <======debugger would then stop here
>>              and one could then F8 step to the offending
>>              routine based on the boolean condition passed
>>   end;
>> end;
>>
>> I believe this is windows specific (?) and I'm now working on Linux
>> machines.
>>
>> The question is:
>>
>> This does not work in Linux and I wonder if there is a similar way to
>> achieve this in Linux environment?
> 
> Wow.. that's a nasty trick....

Mmmm, nasty maybe...but cool! Just tried it again and it won't compile
"INT 3" line because "invalid reference syntax".

I will look into your suggestions in the next days and report back if I
find anything, thanks Joost.

> 
> And it should still work, also on Linux.
> 
> But I think that debuggers nowadays are more clever, they detect that
> the breakpoint is actually self-inflicted, and so they decide to
> continue. After all: the developer can have it's reasons to call this
> interrupt, and the debugger should not influence normal execution.
> 
> I don't know if fpdebug has this same check. (I think it has, though,
> but I'm not sure) If you are using a development Lazarus version you can
> try to install the LazDebuggerFp package, and choose the 'Fpdebug
> internal Dwarf-debugger' as debugger in the debugger-options. See what
> happens if you do that...
> 
> Regards,
> 
> Joost.
> 
> -- 
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus




More information about the Lazarus mailing list