From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4432 invoked by alias); 21 Jun 2010 20:08:36 -0000 Received: (qmail 4418 invoked by uid 22791); 21 Jun 2010 20:08:35 -0000 X-SWARE-Spam-Status: No, hits=-5.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 21 Jun 2010 20:08:31 +0000 Received: from int-mx03.intmail.prod.int.phx2.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5LK8RBU004735 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 21 Jun 2010 16:08:27 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx03.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5LK8QwX031451; Mon, 21 Jun 2010 16:08:27 -0400 Received: from opsy.redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id o5LK8Q21030987; Mon, 21 Jun 2010 16:08:26 -0400 Received: by opsy.redhat.com (Postfix, from userid 500) id E6545378850; Mon, 21 Jun 2010 14:08:25 -0600 (MDT) From: Tom Tromey To: asmwarrior Cc: gdb@sourceware.org Subject: Re: About the "info locals" command of gdb and python pretty printer References: <4C1DDBB0.9010202@gmail.com> Reply-To: tromey@redhat.com Date: Mon, 21 Jun 2010 20:08:00 -0000 In-Reply-To: <4C1DDBB0.9010202@gmail.com> (asmwarrior@gmail.com's message of "Sun, 20 Jun 2010 17:13:20 +0800") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2010-06/txt/msg00088.txt.bz2 >>>>> ">" == Asm gmail writes: >> At this time, if we run the "info locals" with python stl pretty >> printer enabled, as you see, if you breakpoint is still at the first >> line "int aaa = 1;", then bbbb and cccc are not initialized, this may >> cause the python script to plot random values, some times, gdb or >> python will get crashed. I think the real problem here is that gdb crashed. That should not happen. Can you find out what went wrong? Python exceptions are "normal" in the sense that they should not cause gdb any problems. We should fix the problem that exceptions during pretty-printing can cause problems. I think there are a few parts to this. We should differentiate the different types of gdb exception in Python, so that things like memory errors can cause nicer behavior. We should also make lazy strings truly lazy during printing. This will eliminate some problems when trying to print a lazy string with length==-1. Tom