This is the mail archive of the
gdb-prs@sourceware.org
mailing list for the GDB project.
[Bug python/14363] Pretty-Printing of cyclic references producesinfinite recursion
- From: "oliver.buchtala at googlemail dot com"<sourceware-bugzilla at sourceware dot org>
- To: gdb-prs at sourceware dot org
- Date: Wed, 01 Aug 2012 18:22:15 +0000
- Subject: [Bug python/14363] Pretty-Printing of cyclic references producesinfinite recursion
- Auto-submitted: auto-generated
- References: <bug-14363-4717@http.sourceware.org/bugzilla/>
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.