[Lazarus] Conditional Breakpoints - are they supported yet?

Martin Frb lazarus at mfriebe.de
Thu Mar 5 22:16:47 CET 2015


On 05/03/2015 20:11, Graeme Geldenhuys wrote:
> Hi,
>
> I remember a couple of years back I asked this question, but then it
> wasn't implemented yet. Is this functional yet? I see the wiki page for
> that dialog mentions it, so it seems to be possible.
>
>
> http://wiki.lazarus.freepascal.org/IDE_Window:_Break_Points#Breakpoint_properties
>
> But how do I use it?
>
> eg: I set a breakpoint, then adjust it's properties and add the
> condition:  ActualTag = '<h1>'
>
> I also tried
>    ActualTag = "<h1>"
>    ActualTag := '<h1>'
>    ActualTag := '<h1>';
>    etc.
>
> None of them worked. The breakpoint acted like a normal breakpoint and
> stopped execution no matter what the value is of ActualTag variable.
>
> I know the wiki set simple expressions/conditions, and thought the above
> is as basic as you can get. Any additional info on this topic?
>
> I'm using Lazarus 1.3 r46051 FPC 2.6.4 x86_64-freebsd-gtk 2 with GDB 7.8.1
>

Interesting, for me using a condition on string, the condition is never 
true, so it never stops.

It is something to do what gdb sees as the actual value. (Unlike 
watches, the IDE does not apply any pascal syntax fixing to the condition.
I tested with an integer "i=2" that works.

And on top of all your mail just made me realize that string literals 
are broken. They get uppercased, because of a gdb bug, where class 
members are only found if they are uppercase and the ide simple fixes 
that by uppercasing all. That affect watches too.




More information about the Lazarus mailing list