From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8288 invoked by alias); 19 Jan 2008 04:12:05 -0000 Received: (qmail 8280 invoked by uid 22791); 19 Jan 2008 04:12:04 -0000 X-Spam-Check-By: sourceware.org Received: from fg-out-1718.google.com (HELO fg-out-1718.google.com) (72.14.220.155) by sourceware.org (qpsmtpd/0.31) with ESMTP; Sat, 19 Jan 2008 04:11:37 +0000 Received: by fg-out-1718.google.com with SMTP id e12so1247186fga.0 for ; Fri, 18 Jan 2008 20:11:34 -0800 (PST) Received: by 10.78.168.1 with SMTP id q1mr5914411hue.71.1200715894588; Fri, 18 Jan 2008 20:11:34 -0800 (PST) Received: by 10.78.81.7 with HTTP; Fri, 18 Jan 2008 20:11:34 -0800 (PST) Message-ID: Date: Sat, 19 Jan 2008 04:12:00 -0000 From: "Siva Velusamy" To: gdb@sourceware.org Subject: info on "value being assigned to is no longer active" error MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline 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: 2008-01/txt/msg00185.txt.bz2 When writing to a register (msr) when the stack pointer or PC is corrupt, gdb throws out the following error: ---- (gdb) p/x $rmsr { frame_register_unwind (frame=-1,regnum=33(rmsr),...) -> *optimizedp=0 *lvalp=2 *addrp=0x84 *bufferp=[000000a0] } { get_frame_id (fi=0) { frame_func_unwind (fi=-1) -> 0x0 } -> {!stack,!code,!special} } $1 = 0xa0 (gdb) set $rmsr=0x0 { frame_register_unwind (frame=-1,regnum=33(rmsr),...) -> *optimizedp=0 *lvalp=2 *addrp=0x84 *bufferp=[000000a0] } { frame_id_p (l={!stack,!code,!special}) -> 0 } Value being assigned to is no longer active. ----- This sounds pretty similar to the issue reported here: http://sourceware.org/ml/gdb/2005-05/msg00029.html What I do not understand is why gdb is looking for a proper frame before updating the register. If my (admittedly cursory) examination of the code in valops.c is correct, it appears as if gdb is looking for the frame to make sure that it updates the value of the register if it has been stored in the stack. Is that correct? Thanks, Siva -- In the end, everything is a gag. Charlie Chaplin