From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18965 invoked by alias); 3 May 2005 14:01:42 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 18404 invoked from network); 3 May 2005 14:01:07 -0000 Received: from unknown (HELO nwd2mail2.analog.com) (137.71.25.51) by sourceware.org with SMTP; 3 May 2005 14:01:07 -0000 Received: from nwd2mhb1.analog.com (nwd2mhb1.analog.com [137.71.5.12]) by nwd2mail2.analog.com (8.12.10/8.12.10) with ESMTP id j43E10xw019545; Tue, 3 May 2005 10:01:00 -0400 Received: from nwd2exm3.ad.analog.com (nwd2exm3.ad.analog.com [10.64.51.19]) by nwd2mhb1.analog.com (8.9.3 (PHNE_28810+JAGae91741)/8.9.3) with ESMTP id KAA21249; Tue, 3 May 2005 10:00:59 -0400 (EDT) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Subject: RE: Value being assigned to is no longer active. Date: Tue, 03 May 2005 14:01:00 -0000 Message-ID: From: "Decker, Paul" To: "Daniel Jacobowitz" , "Decker, Paul" Cc: X-Spam-Status: No, hits=-101.8 required=10.0 tests=ALL_TRUSTED,TW_XF,USER_IN_WHITELIST version=3.0.2 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 3.000002 (2004-11-16) X-SW-Source: 2005-05/txt/msg00031.txt.bz2 Thanks, at least now I have some sort of starting point. =20 -----Original Message----- From: Daniel Jacobowitz [mailto:drow@false.org]=20 Sent: Tuesday, May 03, 2005 9:54 AM To: Decker, Paul Cc: gdb@sources.redhat.com Subject: Re: Value being assigned to is no longer active. On Tue, May 03, 2005 at 09:46:40AM -0400, Decker, Paul wrote: >=20 >=20 > The "set debug remote 1" and "set debug frame 1" options seem to be=20 > good things to know. Yep. Please fix your line wrapping; I've manually unwrapped this so that I can read it. > { create_sentinel_frame (...) -> {level=3D-1,type=3D=20 > type>,unwind=3D0x8227310,pc=3D,id=3D{!stack,!code,!special},func= =3D nknown>} } { get_prev_frame_1 (this_frame=3D-1) ->=20 > {level=3D0,type=3D,unwind=3D,pc=3D,id=3D,fun > c=3D} } { deprecated_update_frame_pc_hack=20 > (frame=3D0,pc=3D0xffa00006) } { frame_register_unwind=20 > (frame=3D-1,regnum=3D49(SP),...) -> *optimizedp=3D0 *lvalp=3D2 *addrp=3D0= x8c=20 > *bufferp=3D[f80fb0ff] } Sending packet: $mffa00002,c#1b...Ack Packet=20 > received: 000000000000000000000000 > 0xffa00006 in ?? () > (gdb) p/x $PC > { frame_register_unwind (frame=3D-1,regnum=3D0(PC),...) -> *optimizedp=3D= 0=20 > *lvalp=3D2 *addrp=3D0x0 *bufferp=3D[0600a0ff] } { get_frame_id (fi=3D0) {= =20 > frame_register_unwind (frame=3D-1,regnum=3D51(FP),...) -> *optimizedp=3D0= =20 > *lvalp=3D2 *addrp=3D0x94 *bufferp=3D[dcb1bc48] } { frame_func_unwind (fi= =3D-1) > -> 0x0 } > -> {!stack,!code,!special} } > $1 =3D 0xffa00006 > (gdb) set $PC=3D0xFFA00000 > { frame_register_unwind (frame=3D-1,regnum=3D0(PC),...) -> *optimizedp=3D= 0=20 > *lvalp=3D2 *addrp=3D0x0 *bufferp=3D[0600a0ff] } { frame_id_p=20 > (l=3D{!stack,!code,!special}) -> 0 } Value being assigned to is no longer active. The key here is that nothing claims the code at 0xffa00006 as any kind of frame. That means we end up with no frames at all except for the special sentinal frame (at -1). One solution would be to make sure that some frame sniffer for your target does accept this frame. Another would be to handle this in common code by creating a special frame sniffer, at the end of the list, which always accepts frame ID 0. I'm not sure how practical that is (haven't thought about it much). -- Daniel Jacobowitz CodeSourcery, LLC