This is the mail archive of the gdb-prs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug python/14363] Pretty-Printing of cyclic references producesinfinite recursion


http://sourceware.org/bugzilla/show_bug.cgi?id=14363

--- Comment #3 from Oliver Buchtala <oliver.buchtala at googlemail dot com> 2012-08-01 18:22:15 UTC ---
I have had a glance at the python api source and want to add some proposals:

py-prettyprint.c:
print_children (PyObject *printer, const char *hint,
        struct ui_file *stream, int recurse,
        const struct value_print_options *options,
        const struct language_defn *language,
        int is_py_none)

I. Let the pretty-printer know about the current recursion level

this would give the pretty-printer more control about how deep it provides
children.

II. Handle Visited information

A value has a location (struct) that contains the address which could be
collected in a set of visited addresses.
The set would be initialized on recurse==0.

A visited flag could be set in the gdb.Value, leaving handling this to the
pretty-printer, or recursion stopped based on this information, and maybe based
on gdb pretty-print options:
...
   common_val_print (value, stream, recurse + 1, options, language);
...

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]