From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4097 invoked by alias); 1 Aug 2012 18:22:30 -0000 Received: (qmail 4078 invoked by uid 22791); 1 Aug 2012 18:22:29 -0000 X-SWARE-Spam-Status: No, hits=-3.8 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,KHOP_THREADED X-Spam-Check-By: sourceware.org Received: from localhost (HELO sourceware.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 01 Aug 2012 18:22:17 +0000 From: "oliver.buchtala at googlemail dot com" To: gdb-prs@sourceware.org Subject: [Bug python/14363] Pretty-Printing of cyclic references produces infinite recursion Date: Wed, 01 Aug 2012 18:22:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gdb X-Bugzilla-Component: python X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: oliver.buchtala at googlemail dot com X-Bugzilla-Status: NEW X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at sourceware dot org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Mailing-List: contact gdb-prs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-prs-owner@sourceware.org X-SW-Source: 2012-q3/txt/msg00146.txt.bz2 http://sourceware.org/bugzilla/show_bug.cgi?id=14363 --- Comment #3 from Oliver Buchtala 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.