This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

[PATCH] Start abstraction of C++ abi's



This patch, plus the attached files, start the abstraction of the C++
ABI's.

I've started by replacing the simple things, and will incrementally
replace the more complex things, and the things that require real code
changes, as time goes on.

The cp-abi directory, and it's files, are attached in a gzipped tar file.

This fixes some problems with the new-abi already, like not being able
to set breakpoints on destructors (if you try it, you'll get:

(gdb) b foo::~foo
the class `foo' does not have destructor defined
Hint: try 'foo::~foo<TAB> or 'foo::~foo<ESC-?>
(Note leading single quote.)
(gdb)
)

I haven't added the method for detecting which C++ abi we are using,
so it simply defaults to the gnu v2 abi.

However, I have verified the gnu v3 abi parts work fine too (that's how i
know it fixed breakpoints on destructors).

This stuff touches a lot of files, but it's only removing code, or
changing a macro call to a function call (IE VTBL_PREFIX_P ->
vtbl_prefix_p, DESTRUCTOR_PREFIX_P -> destructor_prefix_p).

Who exactly do i need approval from to check this stuff in?

As I said, this is an incremental process. This is the minimum number
of changes necessary to start abstracting the simple things. There is
no way to make this patch smaller, without breaking gdb.


I need someone to look at the configure.in change, i'm not positive I
did it right.

--Dan

cpabidiffs

cp-abi.tar.gz


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]