Hi Richard! > On Tue, Sep 16, 2025 at 10:56 PM Harald Anlauf <[email protected]> wrote: > > > > Hi Mikael, > > > > > Le 16/09/2025 à 21:07, Harald Anlauf a écrit : > > > > Hi All, > > > > > > > > when trying to debug the gfortran frontend, I often get lost in the > > > > forest: too much forest, trees everywhere, leaves, ... > > > > > > > > OK, seriously, what is an efficient way to debug under e.g. gdb, > > > > when there is code that uses macros on trees, like TREE_TYPE () > > > > etc., without losing your sanity? > > > > > > > > I do know that there exists e.g. debug_tree, but this can dump a lot > > > > of stuff on me. And the comment at the top of gcc/print-tree.cc: > > > > > > > > /* Prints out tree in human readable form - GCC > > > > > > > > makes me feel non-human. :-( > > > > > > > > I was now thinking of writing helper functions, like: > > > > > > > I tend to use debug_generic_expr which is enough in the majority of cases. > > > There is a .gdbinit file in build/gcc that you can source in your gdb > > > session. It loads many shortcuts most of them coming from the template > > > gcc/gdbinit.in (have a look there, you may find some useful). > > > > Ah, I missed these. There are indeed some useful ones among them. > > Though not those I was hoping for. > > > > > Otherwise I use the full data references which I pick from the macro > > > definitions. Not human-enough may be. > > > > Yes, that's why I asked here. But I got at least some help and hints. > > When I don't know what I'm looking for it's indeed debug_tree for me, > when I know what I'm looking for I usually end up hacking > tree-pretty-print.cc to make debug_generic_expr print/highlight that > part of the trees.
Alright, so this is not something unusual. I have some ideas for selected cases where I want to pretty-print the tree. Array descriptors within gfortran are one place where I want to see what is produced under which condition, and why we sometimes fail to calculate the correct offset e.g. when it comes to deferred length. > There's the abandoned GSOC project from last year that started to > make the -raw dump emit JSON and a JSON -> html transform so > you could have clickable debug_tree (). This might have been a nice thing! > For the various TREE_* macros I have the actual struct/union members > memoized... otherwise -g3 might help you here. Some more python > plumbing in .gdbinit might also make this stuff more accessible ... Some of the definitions therein are indeed handy. And there is certainly potential for more... > Richard. Thanks for the suggestions! Harald
