From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14900 invoked by alias); 7 Mar 2002 14:54:39 -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 14674 invoked from network); 7 Mar 2002 14:54:36 -0000 Received: from unknown (HELO xcncgw.mariani.ws) (64.3.144.100) by sources.redhat.com with SMTP; 7 Mar 2002 14:54:36 -0000 Received: from mariani.ws (IDENT:gianni@bulli.mariani.ws [216.98.238.112]) by xcncgw.mariani.ws (8.11.0/8.11.0) with ESMTP id g27EsZX08568; Thu, 7 Mar 2002 06:54:35 -0800 Message-ID: <3C877F2A.9020708@mariani.ws> Date: Thu, 07 Mar 2002 06:54:00 -0000 From: Gianni Mariani User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.8) Gecko/20020204 X-Accept-Language: en-us MIME-Version: 1.0 To: Daniel Jacobowitz CC: gdb@sources.redhat.com Subject: Re: 5.2 branch gdb crash - infinite recursion stack overflow References: <3C863C57.6040503@mariani.ws> <20020306111312.A14992@nevyn.them.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2002-03/txt/msg00043.txt.bz2 Daniel Jacobowitz wrote: >On Wed, Mar 06, 2002 at 07:57:11AM -0800, Gianni Mariani wrote: > >>Any ideas ? >> > >"That's nice, give us more." > >I need to see a little more information before I can guess what's >wrong. Like, what were you doing? Preferably source code so that I >can actually debug the problem! > Oops, I forgot to mention that I had asked to print a deref of pointer to a class that has virtual inheritance and virtual methods. In prior revs of gdb it would come back with "can't convert to integer" or somthing like that. So, it terms of creating a snippet of offending code - I'll do that soon, I just am too bizzee right now. However, here is the snippet of the code of the offending classes. A HA_ErrorReport is an interface passed into methods that want to be able to report errors. HA_ErrorReportImpl is an implementation of an error reporter that basically stores the error codes. These were compiled using g++ 3.0.3 on RH 7.2 running linux 2.4.17 on an Athlon. class HA_ErrorReport { public: /** * SetErrorMessage * @parm code The error code being set. * @parm msg The error message being set. */ virtual void SetErrorMessage( int w_code, const std::string & w_msg ) = 0; }; class HA_ErrorReportImpl : virtual public HA_ErrorReport { public: /** * m_message contains the last message set by SetErrorMessage. */ std::string m_message; /** * m_code contains the last code set by SetErrorMessage. */ int m_code; /** * m_ncalled contains the number of times SetErrorMessage was called. */ int m_ncalled; /** * SetErrorMessage implements the HA_ErrorReport method to reporting * errors. */ virtual void SetErrorMessage( int w_code, const std::string & w_msg ); HA_ErrorReportImpl() : m_code(0), m_ncalled(0) { } virtual ~HA_ErrorReportImpl() { } }; Regards G >