On Sat, Jun 28, 2025 at 12:03 PM Jeff Law <jeffreya...@gmail.com> wrote:
>
>
>
> On 6/27/25 5:34 PM, H.J. Lu wrote:
> > Add "void debug (tree)" to support:
> >
> > (gdb) call debug (expr)
> >   <parm_decl 0x7fffe9810bb0 f
> >      type <record_type 0x7fffe99cec78 c BLK
> >          size <integer_cst 0x7fffe98242d0 constant 256>
> >          unit-size <integer_cst 0x7fffe98243a8 constant 32>
> >          user align:256 warn_if_not_align:0 symtab:0 alias-set -1 
> > canonical-type
> > 0x7fffe99cebd0
> >          fields <field_decl 0x7fffe98318c0 a type <real_type 0x7fffe982a3f0 
> > long
> > double>
> >              XF x.c:2:15
> >              size <integer_cst 0x7fffe9802fa8 constant 128>
> >              unit-size <integer_cst 0x7fffe9802fc0 constant 16>
> >              align:128 warn_if_not_align:0 offset_align 128 
> > decl_not_flexarray: 1
> >              offset <integer_cst 0x7fffe9802f90 constant 0>
> >              bit-offset <integer_cst 0x7fffe9802fd8 constant 0> context 
> > <record_t
> > ype 0x7fffe99cebd0> chain <field_decl 0x7fffe9831960 b>>>
> >      used read BLK x.c:7:6 size <integer_cst 0x7fffe98242d0 256> unit-size 
> > <integ
> > er_cst 0x7fffe98243a8 32>
> >      align:256 warn_if_not_align:0 context <function_decl 0x7fffe99d2900 e> 
> > arg-t
> > ype <record_type 0x7fffe99cec78 c>>
> > (gdb)
> >
> > PR debug/120849
> > * print-tree.cc (debug): New.
> > * print-tree.h (debug): Likewise.
> >
> > OK for master?
> Umm, just use debug_tree?  What am I missing?
>

There are many debug functions:

bitmap.h:extern void debug (const bitmap_head &ref);
bitmap.h:extern void debug (const bitmap_head *ptr);
bitmap.h:extern void debug (const auto_bitmap &ref);
bitmap.h:extern void debug (const auto_bitmap *ptr);
cfg.h:extern void debug (edge_def &ref);
cfg.h:extern void debug (edge_def *ptr);
diagnostic-path.h:extern void debug (diagnostic_path *path);
dwarf2out.h:extern void debug (die_struct &ref);
dwarf2out.h:extern void debug (die_struct *ptr);
gimple-pretty-print.h:extern void debug (gimple &ref);
gimple-pretty-print.h:extern void debug (gimple *ptr);
ira-int.h:extern void debug (ira_allocno_copy &ref);
ira-int.h:extern void debug (ira_allocno_copy *ptr);
ira-int.h:extern void debug (ira_allocno &ref);
ira-int.h:extern void debug (ira_allocno *ptr);
ira-int.h:extern void debug (live_range &ref);
ira-int.h:extern void debug (live_range *ptr);
lra-int.h:extern void debug (lra_live_range &ref);
lra-int.h:extern void debug (lra_live_range *ptr);
print-tree.h:extern void debug (const tree_node &ref);
print-tree.h:extern void debug (const tree_node *ptr);
print-tree.h:extern void debug (vec<tree, va_gc> &ref);
print-tree.h:extern void debug (vec<tree, va_gc> *ptr);
rtl.h:extern void debug (const rtx_def &ref);
rtl.h:extern void debug (const rtx_def *ptr);
sbitmap.h:extern void debug (const simple_bitmap_def &ref);
sbitmap.h:extern void debug (const simple_bitmap_def *ptr);
sel-sched-dump.h:extern void debug (vinsn_def &ref);
sel-sched-dump.h:extern void debug (vinsn_def *ptr);
sel-sched-dump.h:extern void debug (expr_def &ref);
sel-sched-dump.h:extern void debug (expr_def *ptr);
sel-sched-dump.h:extern void debug (vec<rtx> &ref);
sel-sched-dump.h:extern void debug (vec<rtx> *ptr);
sreal.h:extern void debug (const sreal &ref);
sreal.h:extern void debug (const sreal *ptr);
tree-cfg.h:extern void debug (class loop &ref);
tree-cfg.h:extern void debug (class loop *ptr);
tree-data-ref.h:extern void debug (data_reference &ref);
tree-data-ref.h:extern void debug (data_reference *ptr);
tree-data-ref.h:extern void debug (vec<data_reference_p> &ref);
tree-data-ref.h:extern void debug (vec<data_reference_p> *ptr);
tree-data-ref.h:extern void debug (vec<ddr_p> &ref);
tree-data-ref.h:extern void debug (vec<ddr_p> *ptr);
tree-ssa-alias.h:extern void debug (pt_solution &ref);
tree-ssa-alias.h:extern void debug (pt_solution *ptr);
tree-ssa-live.h:extern void debug (_var_map &ref);
tree-ssa-live.h:extern void debug (_var_map *ptr);
tree-ssa-live.h:extern void debug (tree_live_info_d &ref);
tree-ssa-live.h:extern void debug (tree_live_info_d *ptr);

one can just use "call debug (xxx)" in gdb without having to remember
which debug_xxx to use.  It works on most types, except for tree.


-- 
H.J.

Reply via email to