This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [rfc/testsuite/c++] c2.exp, new script for class lookup
- From: mec dot gnu at mindspring dot com (Michael Elizabeth Chastain)
- To: carlton at kealia dot com, mec dot gnu at mindspring dot com
- Cc: gdb-patches at sources dot redhat dot com
- Date: Mon, 24 Nov 2003 23:22:39 -0500 (EST)
- Subject: Re: [rfc/testsuite/c++] c2.exp, new script for class lookup
dc> What else are you going to add? How about cast-classes or subclasses
dc> or something like that?
Well, I started out by picking up PR gdb/186, because it was in my
big directory of incomplete gdb stuff that I'm working on.
The issue with gdb/186 is:
. program has base class "A", derived class "B"
. program has an object of type "B"
. program has "A *" and "B *" pointers to the "B" object
. user puts breakpoint on closing "}" of function
. this is after the destructors are called!
. "print *b_p" does bad things after the destructor happens
. because, as we figured out, B::~B changes the vptr
This PR is several years old so it's not something you broke. :)
So I reproduced the PR and I was writing a test case, gdb186.exp.
I figured that I should put in some simple tests before the
destructor happens to show that gdb is working fine in that instance.
And, well, the simple tests revealed a simpler problem,
without any of the destructor-changes-vptr issues.
So once the immediate problem gets fixed, I can get back to worrying
about "print *b_p" after B::~B is called.
Also virtfunc.exp has another regression since 6.0 (PR gdb/1405, virtual
baseclass botch). I wish it was related, but the dates don't match up
-- it manifested on 2003-10-02. When I crack open gdb/1405 I might find
that class2.exp is a good place for an explicit test.
And I'll probably throw in any other class-related stuff that I come
across because it's easier to work with gdb_test_multiple, kfail,
test_compiler_info, and all that good stuff.
Michael C