[Lazarus] GDB - cannot perform pointer math on incomplete types

David Emerson dle3ab at angelbase.com
Tue Dec 4 04:11:20 CET 2012


Martin wrote:
> 
> Still if you can get me the log + unit source ?
> 
> because the IDE in many cases tries to work those out. So I wonder what 
> happens behind the curtains...

Hmm I am working on it ... can't really share the sources  :(  but I am 
trying to build a miniature version to reproduce it. In the meantime:

The watch item I created looks like this:
tsrl_ag_cp(f_ag).f_curve.f_cps.f_list[0]
and after your suggestion, was fixed like this:
^pointer(tsrl_ag_cp(f_ag).f_curve.f_cps.f_list)[0]

SELF is a class with field f_ag : tsrl_ag
tsrl_ag_cp descends from tsrl_ag
tsrl_ag_cp has field f_curve : tsrl_curve
tsrl_curve has field f_cps : tsrl_ag_cp_list
tsrl_ag_cp_list descends from t_ordered_ag_list
t_ordered_ag_list = specialize gt_unsorted_pointer_list <tsrl_ag>
generic gt_unsorted_pointer_list <_class> = class 
(t_unsorted_pointer_list)
t_unsorted_pointer_list is a class with field f_list : ptr_array
and type ptr_array = array of pointer

So as you can see it is a little complicated :-)






More information about the Lazarus mailing list