From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26628 invoked by alias); 3 Oct 2011 16:28:52 -0000 Received: (qmail 26620 invoked by uid 22791); 3 Oct 2011 16:28:51 -0000 X-SWARE-Spam-Status: No, hits=-7.2 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; Mon, 03 Oct 2011 16:28:31 +0000 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p93GSMOK024713 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 3 Oct 2011 12:28:22 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id p93GSL7H030735; Mon, 3 Oct 2011 12:28: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 p93GSJW8021271; Mon, 3 Oct 2011 12:28:20 -0400 From: Tom Tromey To: Avi Gozlan Cc: "'gdb-patches\@sourceware.org'" , Matan Ben Gur Subject: Re: [RFC] canonical linespec and multiple breakpoints ... References: <9C4E85B61203CD419BB3A638E5F6833301E5CA98B64F@il-ex01.ad.checkpoint.com> Date: Mon, 03 Oct 2011 16:28:00 -0000 In-Reply-To: <9C4E85B61203CD419BB3A638E5F6833301E5CA98B64F@il-ex01.ad.checkpoint.com> (Avi Gozlan's message of "Sun, 18 Sep 2011 13:22:04 +0300") 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-10/txt/msg00021.txt.bz2 >>>>> "Avi" == Avi Gozlan writes: Sorry about the delay in my reply. I was offline all of September. Avi> Among varying GDB uses, we use GDB to debug a process which loads Avi> (using dlopen) the same exact library multiple times (in fact there Avi> are copies of the library otherwise dlopen returns the same handle for Avi> each load). Avi> 1) The proposal discusses function breakpoints. Will it also enable Avi> inspecting global and static variables from a specific library? No, I'm afraid not. I think implementing something for variables could be done, but it would be a separate project, maybe with a different approach. I can advise if you are interested in this. Avi> 2) Just to make sure we understand the interaction of the user Avi> interface with "set multiple-symbols": it will be possible to request Avi> GDB for a specific variable/function by a library name without getting Avi> it from all libraries or get a question (ask) each time, right? Avi> Otherwise it will be very inconvenient to inspect multiple variables Avi> within a given library. Yes, this will work as you expect. Avi> 3) Will the library specific interface know how to handle non-stripped Avi> libraries that are compiled without debug information (no "-g")? Yes. This is already implemented on my branch. It improves GDB's behavior here, so that the right thing happens if you have multiple instance of a name where some symbols have debuginfo and some do not. Avi> 4) We suggest adding an option to enable the GDB backtrace command to Avi> show the library name for each function. In our usage case we have Avi> scenarios in which the libraries interact with each other and a Avi> backtrace showing the library name for each function can enable us Avi> understand the interaction perfectly. There was an earlier thread about this, I'm not sure what happened in the end though. I think this would be a good addition. If there is no bug report for this, could you file one? Avi> 5) Perhaps a little pedantic but what about handling symbols with Avi> different names in libraries with identical name which lie in Avi> different paths? I didn't implement the "objfile" prefix stuff yet, but my plan is to let you specify as much of the path as you want, e.g.: break libsomething.so:function break /lib/libsomething.so:function break some/leading/dirs/libsomething.so:function Tom