From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25820 invoked by alias); 26 Apr 2005 09:53:19 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 24781 invoked from network); 26 Apr 2005 09:51:54 -0000 Received: from unknown (HELO ausmtp02.au.ibm.com) (202.81.18.187) by sourceware.org with SMTP; 26 Apr 2005 09:51:54 -0000 Received: from sd0208e0.au.ibm.com (d23rh904.au.ibm.com [202.81.18.202]) by ausmtp02.au.ibm.com (8.12.10/8.12.10) with ESMTP id j3Q9m3bP400532 for ; Tue, 26 Apr 2005 19:48:03 +1000 Received: from d23av04.au.ibm.com (d23av04.au.ibm.com [9.190.250.237]) by sd0208e0.au.ibm.com (8.12.10/NCO/VER6.6) with ESMTP id j3Q9sSmB136010 for ; Tue, 26 Apr 2005 19:54:28 +1000 Received: from d23av04.au.ibm.com (loopback [127.0.0.1]) by d23av04.au.ibm.com (8.12.11/8.12.11) with ESMTP id j3Q9piZS019298 for ; Tue, 26 Apr 2005 19:51:44 +1000 Received: from ibmcsdl9m89c83 (ibmcsdl-9m89c83.cn.ibm.com [9.181.134.114]) by d23av04.au.ibm.com (8.12.11/8.12.11) with SMTP id j3Q9peKa019185; Tue, 26 Apr 2005 19:51:43 +1000 Message-ID: <01cf01c54a45$899fb070$7286b509@ibmcsdl9m89c83> From: "Wu Zhou" To: "Daniel Jacobowitz" Cc: References: <001f01c54a0b$146e8450$7286b509@ibmcsdl9m89c83> <20050426031822.GA4998@nevyn.them.org> Subject: Re: about how to add support to new c++ compiler in GDB Date: Tue, 26 Apr 2005 09:53:00 -0000 X-SW-Source: 2005-04/txt/msg00341.txt.bz2 > 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. Thank you, Daniel! I am very glad to try your patch. > > > I am now considering add some code in GDB to fix this. After doing some > > search in this mail-list, I found there are some discussion on similar > > problem before, such as http://sourceware.org/ml/gdb/2004-12/msg00077.html. > > So I think maybe some of you might have experience or thought or idea on > > this already. So I write this mail to ask for your expert advice: > > > > 1. To support a new c++ compiler, what work need to bo done? I am now > > thinking of is a new source file(maybe xlc-abi.c) to register its own cp-abi > > operation, and some tweak in dwarf2read.c to let GDB understand xlc specific > > debuginfo. Any else places need my special attention? Please advice. > > Do you need an xlc-abi.c? What ABI does this compiler follow? If it > doesn't follow the Itanium C++ ABI or one of the older GNU ABIs, then > considerably more work may be required. I am not very sure. They(the developer of xlc) said that they also follow GNU V3 C++ ABI. But there are quite a few difference between the debuginfo generated by g++ and xlc++. An new file named xlc-abi.c is what I could thought of at this time. It could verify my idea, and at the same time not impact the debugging of g++ code. If the changes is not big, maybe we could integrate them back into gnu-v3-abi.c at last. > > Is its ABI documented? > I am not very sure. I need to ask the compiler developer. > > 2. while coding this support, what design consideration I need to take into > > account? Is there any document on this? GDB internal didn't mention this. > > Maybe there are some in somebody's mind, would you like to share with me? > > Thanks a lot. :-) > > I'd be glad to answer more specific questions, but I've not got any > answers for this general one. > > Do you have arangements for copyright assignment? I don't know how > exactly that works in IBM, but I suspect it's complicated. My manager are arranging this for me. Do I need to assign any document myself? If yes, I am very glad to do so. > > > 3. To verify that my code does work ok and don't bring any other > > side-effect, what I need to take into account? Running the testsuite against > > the modified code might be a help. Any specific area need some more > > attention? > > Testing with already supported C++ compilers is very important. It's > easy to fix one ABI and break another. Thanks. I will keep this in mind. > > -- > Daniel Jacobowitz > CodeSourcery, LLC