From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3325 invoked by alias); 1 Jun 2012 16:21:52 -0000 Received: (qmail 3306 invoked by uid 22791); 1 Jun 2012 16:21:47 -0000 X-SWARE-Spam-Status: No, hits=-7.5 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_DNSWL_HI,RCVD_IN_HOSTKARMA_W,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; Fri, 01 Jun 2012 16:21:30 +0000 Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q51GLURq007502 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 1 Jun 2012 12:21:30 -0400 Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id q51GLTNn026015; Fri, 1 Jun 2012 12:21:29 -0400 Message-ID: <4FC8EC08.1060609@redhat.com> Date: Fri, 01 Jun 2012 16:21:00 -0000 From: Pedro Alves User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120430 Thunderbird/12.0.1 MIME-Version: 1.0 To: Joakim Tjernlund CC: gdb-patches@sourceware.org Subject: Re: [PATCH] solib-svr4: Avoid unwanted shlib internal BPs When debugging Linux kernel or u-boot References: <1338562868-22411-1-git-send-email-Joakim.Tjernlund@transmode.se> In-Reply-To: <1338562868-22411-1-git-send-email-Joakim.Tjernlund@transmode.se> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit 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: 2012-06/txt/msg00022.txt.bz2 On 06/01/2012 04:01 PM, Joakim Tjernlund wrote: > > gdb mistakenly inserts a special shared library BP even though > there area no such libs in either linux or u-boot. > Fix by testing for ld.so presence. Thanks. I've ran it through the testsuite just in case; no regressions. Anyone know of any reason we shouldn't put this in? I don't know the history of these particular fallbacks, and don't know which hosts or conditions might need them. I've found this as further back as around gdb-4.9 (1993), where we had: /* On SVR4 systems, for the initial implementation, use some runtime startup symbol as the "startup mapping complete" breakpoint address. The models for SunOS and SVR4 dynamic linking debugger support are different in that SunOS hits one breakpoint when all mapping is complete while using the SVR4 debugger support takes two breakpoint hits for each file mapped, and there is no way to know when the "last" one is hit. Both these mechanisms should be tied to a "breakpoint service routine" that gets automatically executed whenever one of the breakpoints indicating a change in mapping is hit. This is a future enhancement. (FIXME) */ #define BKPT_AT_SYMBOL 1 #if defined (BKPT_AT_SYMBOL) && defined (SVR4_SHARED_LIBS) static char *bkpt_names[] = { #ifdef SOLIB_BKPT_NAME SOLIB_BKPT_NAME, /* Prefer configured name if it exists. */ #endif "_start", "main", NULL }; #endif and at that point solib.c was a mess used by both SVR4 and a.out SunOS. (Incidentally, the present solib-sunos.c is only really used on a.out BSD targets, not by Solaris.) I've written a ChangeLog entry for you. Please see the gdb/CONTRIBUTE for the next time. Thanks. 2012-06-01 Joakim Tjernlund * solib-svr4.c (enable_break): Don't fallback to setting the solib event breakpoint at _start, __start or main if a program interpreter is not found. --- diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c index bd0141a..307e483 100644 --- a/gdb/solib-svr4.c +++ b/gdb/solib-svr4.c @@ -1707,7 +1707,7 @@ enable_break (struct svr4_info *info, int from_tty) } } - if (!current_inferior ()->attach_flag) + if (interp_name != NULL && !current_inferior ()->attach_flag) { for (bkpt_namep = bkpt_names; *bkpt_namep != NULL; bkpt_namep++) {