From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24025 invoked by alias); 21 Jul 2011 20:38:37 -0000 Received: (qmail 24017 invoked by uid 22791); 21 Jul 2011 20:38:36 -0000 X-SWARE-Spam-Status: No, hits=-7.5 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,SPF_HELO_PASS 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; Thu, 21 Jul 2011 20:38:23 +0000 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p6LKcM2Y012456 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 21 Jul 2011 16:38:22 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p6LKcLlA009354; Thu, 21 Jul 2011 16:38:22 -0400 Received: from barimba (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 p6LKcKBN027424; Thu, 21 Jul 2011 16:38:21 -0400 From: Tom Tromey To: Hui Zhu Cc: gdb-patches ml Subject: Re: [PATCH] printcmd.c (ui_printf): make internalvar string can be printf and eval when inferior cannot alloc memory References: Date: Thu, 21 Jul 2011 20:43:00 -0000 In-Reply-To: (Hui Zhu's message of "Wed, 20 Jul 2011 14:09:03 +0800") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-07/txt/msg00599.txt.bz2 >>>>> ">" == Hui Zhu writes: >> So I make a patch to handle the error from value_as_address. If >> value_as_address get error and this is a internalvar, call >> value_contents to get the address of the val. I don't think this is the best approach to solve this problem. It seems to me that if the value is already an array, the data might already exist in gdb, and then you don't have to even try to coerce it to memory. (However, for a pointer or integer value, using value_as_address is still the best thing.) I would suggest looking to see how valprint handles this situation, then do the same thing here. Tom