From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31741 invoked by alias); 7 Jul 2011 05:48:19 -0000 Received: (qmail 31732 invoked by uid 22791); 7 Jul 2011 05:48:17 -0000 X-SWARE-Spam-Status: No, hits=-2.1 required=5.0 tests=AWL,BAYES_00,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from shell0.rawbw.com (HELO shell0.rawbw.com) (198.144.192.45) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 07 Jul 2011 05:47:55 +0000 Received: from eagle.yuri.org (stunnel@localhost [127.0.0.1]) (authenticated bits=0) by shell0.rawbw.com (8.14.4/8.14.4) with ESMTP id p675ldSk021438; Wed, 6 Jul 2011 22:47:40 -0700 (PDT) (envelope-from yuri@rawbw.com) Message-ID: <4E15487B.3080306@rawbw.com> Date: Thu, 07 Jul 2011 05:48:00 -0000 From: Yuri User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:5.0) Gecko/20110706 Thunderbird/5.0 MIME-Version: 1.0 To: Joel Brobecker CC: Tom Tromey , gdb@sourceware.org, Steven Kreuzer Subject: Re: 7.3 is broken on FreeBSD References: <4E14D646.5090003@rawbw.com> <20110706224222.GV15572@adacore.com> <4E14E5D2.1080009@rawbw.com> <20110706225535.GW15572@adacore.com> <4E14EB9C.8080503@rawbw.com> <20110706232418.GX15572@adacore.com> <4E14F266.3030807@rawbw.com> <20110707015927.GY15572@adacore.com> <4E15165A.10303@rawbw.com> <20110707043156.GA15572@adacore.com> In-Reply-To: <20110707043156.GA15572@adacore.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes 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: 2011-07/txt/msg00042.txt.bz2 On 07/06/2011 21:31, Joel Brobecker wrote: >> gdb-7.3 crashes on this line: >> 563 dr_status_mirror = i386_dr_low.get_status (); >> (gdb) p i386_dr_low >> $1 = {set_control = 0, set_addr = 0, reset_addr = 0, get_status = 0, >> unset_status = 0, debug_register_length = 0} > But i386_dr_low is supposed to be set at GDB startup by > _initialize_i386fbsd_nat: > > void > _initialize_i386fbsd_nat (void) > { > struct target_ops *t; > > /* Add some extra features to the common *BSD/i386 target. */ > t = i386bsd_target (); > > #ifdef HAVE_PT_GETDBREGS > > i386_use_watchpoints (t); > > i386_dr_low.set_control = i386bsd_dr_set_control; > i386_dr_low.set_addr = i386bsd_dr_set_addr; > i386_dr_low.reset_addr = i386bsd_dr_reset_addr; > i386_dr_low.get_status = i386bsd_dr_get_status; > i386_set_debug_register_length (4); > > #endif /* HAVE_PT_GETDBREGS */ > > Is this happening? And if yes, then who is overriding the value? > If not, why is it not happening, since you confirmed that > HAVE_PT_GETDBREGS is defined. > Instead _initialize_amd64fbsd_nat is called. I only see that i386_dr_low is being set in i386fbsd-nat.c. Shouldn't there also be amd64_dr_low ? Yuri