From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32399 invoked by alias); 4 Aug 2011 10:42:44 -0000 Received: (qmail 32375 invoked by uid 22791); 4 Aug 2011 10:42:44 -0000 X-SWARE-Spam-Status: No, hits=-2.8 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from localhost (HELO sourceware.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 04 Aug 2011 10:42:32 +0000 From: "dj170590 at hotmail dot com" To: gdb-prs@sourceware.org Subject: [Bug mi/13041] Virtual base class botch X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gdb X-Bugzilla-Component: mi X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: dj170590 at hotmail dot com X-Bugzilla-Status: WAITING X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at sourceware dot org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Date: Thu, 04 Aug 2011 10:42:00 -0000 Mailing-List: contact gdb-prs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-prs-owner@sourceware.org X-SW-Source: 2011-q3/txt/msg00121.txt.bz2 http://sourceware.org/bugzilla/show_bug.cgi?id=13041 --- Comment #3 from Dennis 2011-08-04 10:42:02 UTC --- Error isn't fixed in GDB 7.3 as far as I still get the error now. I'll try to explain what the real problem is but a example is hard to make, because I use a wrapper around the GDB commands that are used, and the wrapper isn't made by me.. So I cannot exactly see what the commands are that are send to GDB MI. Only if it fails. Example code: #include using namespace std; using namespace sc_core; class sc_module { public: sc_module() { sc_module_init(); } void sc_module_init() { int a = 0; a++; a += 4; } }; class sc_interface{}; class tlm_bw_nonblocking_transport_if : public virtual sc_interface{}; class tlm_bw_direct_mem_if : public virtual sc_interface{}; class tlm_bw_transport_if: public virtual tlm_bw_nonblocking_transport_if, public virtual tlm_bw_direct_mem_if{}; class CPU: public tlm_bw_transport_if, public sc_module { public: CPU(){} virtual ~CPU(){} //Destructor }; class tlm_fw_nonblocking_transport_if : public virtual sc_interface {}; class tlm_blocking_transport_if : public virtual sc_interface {}; class tlm_fw_direct_mem_if : public virtual sc_interface{}; class tlm_transport_dbg_if : public virtual sc_interface{}; class tlm_fw_transport_if : public virtual tlm_fw_nonblocking_transport_if , public virtual tlm_blocking_transport_if , public virtual tlm_fw_direct_mem_if , public virtual tlm_transport_dbg_if {}; class RAM: public sc_module, public tlm_fw_transport_if { public: RAM(){} virtual ~RAM(){} //Destructor }; class Top: public sc_module { public: Top(){}; CPU cpu; RAM ram; }; int main( int argc , char **argv ) { Top top(); cout << "Done" << endl; return 0; } I run: gdb -n -readnow --interpreter=mi --args ../../Example -break-insert sc_module::sc_module_init If it's hit the first time, cpu is made, that's no problem. But second time it hits ram is made, then I get a virtual base class botch. What I do when sc_module_init is hit for the second time(so ram is made): I go up the stacklevel so I am in main. Then I create the var named var24 and I go look what the childs of it are if i check var24.public.ram.tlm::tlm_fw_transport_if with the command "-var-list-children --all-values \"var24.public.ram.tlm::tlm_fw_transport_if\"" I get the error. I hope the problem is more clear now. Ask if it isn't, please. -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.