[RFC] Fortran-intern "tree browser"

Daniel Kraft d@domob.eu
Wed Sep 3 16:55:00 GMT 2008


Tobias Schlüter wrote:
> Steve Kargl wrote:
>> On Wed, Sep 03, 2008 at 05:16:00PM +0200, Tobias Schl?ter wrote:
>>> Daniel Kraft wrote:
>>>> I'm just in the middle of a debugging-session for PR 37099, and find 
>>>> it somewhat tedious to analyse the gfortran-internal trees (mostly 
>>>> gfc_expr) via gdb's print dump.  Especially wide-character strings 
>>>> and things like gmp-constants are quite hard to figure out by hand...
>>> It should be possible to call gfc_show_expr() and the like from the 
>>> debugger.  At least I put a patch into the tree for exactly this 
>>> purpose.  This should address most of your ideas.
>>>
>>
>> It appears someone (un)fixed your changed.
>>
>> mobile:kargl[214] grep gfc_show_expr *c
>> mobile:kargl[215] grep -2 -E ^show_expr *c
>> dump-parse-tree.c-
>> dump-parse-tree.c-static void
>> dump-parse-tree.c:show_expr (gfc_expr *p)
>> dump-parse-tree.c-{
>>
> 
> A cursory search didn't review where those function were made 
> non-static.  (For the historically interested: originally these 
> functions were spread out over the various source files as a sort of 
> documentation, during the move into gcc's tree Steven collected them 
> into dump-parse-tree.c and made them static, I made them non-static 
> again, FX reverted this change, probably there are a few more iterations 
> to come unless we add a comment why they're static or not.)

What's about creating a new method for the dedicated purpose of being 
called from the debugger, like gfc_debug_expr/gfc_debug_code (or _dump_ 
if you like better), that at the moment simply calls through to 
show_expr (being static or public, does not matter)?  Besides "fixing" 
this static/public problem, this leaves potential for future changes to 
dumping for debugging-only (like printing more details if requested or 
something similar).

Daniel

-- 
Done:     Arc-Bar-Cav-Sam-Val-Wiz, Dwa-Elf-Gno-Hum-Orc, Law-Neu-Cha, Fem-Mal
To go:    Hea-Kni-Mon-Pri-Ran-Rog-Tou



More information about the Fortran mailing list