Re: about how to add support to new c++ compiler in GDB

Daniel Jacobowitz
2005-04-27T20:09:11Z

On Mon, Apr 25, 2005 at 11:18:23PM -0400, Daniel Jacobowitz wrote:
> On Tue, Apr 26, 2005 at 10:53:03AM +0800, Wu Zhou wrote:
> > Hello Daniel and all,
> >
> > I am recently running GDB testsuite against IBM's xlc compiler, and found
> > some problems with c++ testcases, especially while handling virtual-table
> > related stuff. After some analysis, I found there are some difference
> > between the debuginfo output between xlc++ and g++. The main difference I
> > noted now is that the class in xlc++ didn't depend on DW_TAG_containing_type
> > to find its virutal function table. Instead, every virtual class in xlc++
> > had its own "__vfp", which act the same role as "_vptr.CLASSNAME" in g++.
> > This will make gdb crash (SEGV) on quite a few c++ testcase.
>
> I have some patches for this, originally developed for the ARM RVCT
> compiler. I haven't had the time to clean them up and post them.
> They will probably be helpful to you.
>
> If I haven't posted them by the end of this week, please, remind me.

You can find the patch, against current CVS GDB, at:
http://return.false.org/~drow/gdb/combined-rvct-patches.diff

On i386-linux, using g++, it breaks a couple of gcj tests (hmm, I
thought I'd fixed that) and fixes a couple of C++ KFAILs. For RVCT the
results are more dramatic. It is going to be a long time before these
patches are all merged; there are 41 of them, some will require
discussion, and all will require me finding some time. I'll go do the
first one now.

You should give these a try with xlc++ and see if they help. If not,
we'll need to discuss the differences in xlc output.

--
Daniel Jacobowitz
CodeSourcery, LLC