public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug java/13743] New: Debug Info for Java breaks inferior calls
@ 2004-01-19 17:16 aph at gcc dot gnu dot org
  2004-01-19 17:22 ` [Bug java/13743] " aph at gcc dot gnu dot org
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: aph at gcc dot gnu dot org @ 2004-01-19 17:16 UTC (permalink / raw)
  To: gcc-bugs

From: Jeff Johnston <jjohnstn at redhat.com>

  In doing some more testing with java inferior call, I found a key 
difference between the java and C++ debug info files that is causing gdb 
some grief.  We can't make inferior calls to non-static java members as 
we can't find the vtable.

  In C++, the vtable is being represented by a special member called 
_vptr.class.  In the DW_AT_structure_type for the class, it has a 
special DW_AT_containing_type tag which points to the class that 
contains this _vptr member.  In this case, Property has the _vptr entry 
so it points to itself.  Gdb is specifically looking for this _vptr 
entry and if it can't find it, gives up trying to resolve a virtual 
member function.

  In java, the DW_AT_containing_type tag is missing from the 
DW_AT_structure_type and there isn't a _vptr member entry.  I did find a 
vtable member in java.lang.Object but I don't know if that is the same.  
It might be possible just to point the containing_type to the 
java.lang.Object and then have gdb understand and use the vtable entry.  
Any thoughts?  We're kind of in unchartered ground here.

  I have included a better C++ example for you to look at with the debug 
info from readelf -wi.  The member function dothat() in the Property 
class is comparable from java to C++.

-- 
           Summary: Debug Info for Java breaks inferior calls
           Product: gcc
           Version: 3.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: java
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: aph at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13743


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug java/13743] Debug Info for Java breaks inferior calls
  2004-01-19 17:16 [Bug java/13743] New: Debug Info for Java breaks inferior calls aph at gcc dot gnu dot org
@ 2004-01-19 17:22 ` aph at gcc dot gnu dot org
  2004-01-23 11:13 ` aph at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: aph at gcc dot gnu dot org @ 2004-01-19 17:22 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From aph at gcc dot gnu dot org  2004-01-19 17:22 -------
Created an attachment (id=5523)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=5523&action=view)
example code


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |aph at gcc dot gnu dot org
                   |dot org                     |
             Status|UNCONFIRMED                 |ASSIGNED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13743


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug java/13743] Debug Info for Java breaks inferior calls
  2004-01-19 17:16 [Bug java/13743] New: Debug Info for Java breaks inferior calls aph at gcc dot gnu dot org
  2004-01-19 17:22 ` [Bug java/13743] " aph at gcc dot gnu dot org
@ 2004-01-23 11:13 ` aph at gcc dot gnu dot org
  2004-02-27 14:57 ` aph at redhat dot com
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: aph at gcc dot gnu dot org @ 2004-01-23 11:13 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From aph at gcc dot gnu dot org  2004-01-23 11:13 -------
This is related to 6587, but is not the same bug.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13743


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug java/13743] Debug Info for Java breaks inferior calls
  2004-01-19 17:16 [Bug java/13743] New: Debug Info for Java breaks inferior calls aph at gcc dot gnu dot org
  2004-01-19 17:22 ` [Bug java/13743] " aph at gcc dot gnu dot org
  2004-01-23 11:13 ` aph at gcc dot gnu dot org
@ 2004-02-27 14:57 ` aph at redhat dot com
  2004-09-28 17:45 ` aph at gcc dot gnu dot org
  2004-11-06 15:48 ` pinskia at gcc dot gnu dot org
  4 siblings, 0 replies; 6+ messages in thread
From: aph at redhat dot com @ 2004-02-27 14:57 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From aph at redhat dot com  2004-02-27 14:57 -------
Subject:  New: Debug Info for Java breaks inferior calls

I've been studying gcj's output, and it seems easy to add the vtable
info that C++ generates.  I've appended a patch to do that.  As far as
I can see, the output is now the same.

As you correctly guessed, in Java, the vtable pointer is always called
"vtable", and it's always at the same offset in the class.  I suppose
I could change the name of the vtable pointer to _vptr.<classname> to
make it the same as C++, but I'd rather not if I can avoid it.

gdb can just use "vtable", I presume.  Let me know if that doesn't
work.
 
Is that enough info?

Thanks,
Andrew.


Index: gcc/java/class.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/class.c,v
retrieving revision 1.178
diff -c -2 -p -w -r1.178 class.c
*** gcc/java/class.c	26 Feb 2004 15:34:05 -0000	1.178
--- gcc/java/class.c	27 Feb 2004 14:34:56 -0000
*************** set_super_info (int access_flags, tree t
*** 443,446 ****
--- 443,447 ----
  	= super_binfo;
        CLASS_HAS_SUPER (this_class) = 1;
+       TYPE_VFIELD (this_class) = TYPE_VFIELD (super_class);
      }
  
Index: gcc/java/decl.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/decl.c,v
retrieving revision 1.178
diff -c -2 -p -w -r1.178 decl.c
*** gcc/java/decl.c	5 Feb 2004 22:07:32 -0000	1.178
--- gcc/java/decl.c	27 Feb 2004 14:34:56 -0000
*************** java_init_decl_processing (void)
*** 639,642 ****
--- 639,645 ----
  
    PUSH_FIELD (object_type_node, field, "vtable", dtable_ptr_type);
+   DECL_FCONTEXT (field) = object_type_node;
+   TYPE_VFIELD (object_type_node) = field;
+ 
    /* This isn't exactly true, but it is what we have in the source.
       There is an unresolved issue here, which is whether the vtable


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13743


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug java/13743] Debug Info for Java breaks inferior calls
  2004-01-19 17:16 [Bug java/13743] New: Debug Info for Java breaks inferior calls aph at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2004-02-27 14:57 ` aph at redhat dot com
@ 2004-09-28 17:45 ` aph at gcc dot gnu dot org
  2004-11-06 15:48 ` pinskia at gcc dot gnu dot org
  4 siblings, 0 replies; 6+ messages in thread
From: aph at gcc dot gnu dot org @ 2004-09-28 17:45 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From aph at gcc dot gnu dot org  2004-09-28 17:45 -------
Fixed now.


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13743


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug java/13743] Debug Info for Java breaks inferior calls
  2004-01-19 17:16 [Bug java/13743] New: Debug Info for Java breaks inferior calls aph at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2004-09-28 17:45 ` aph at gcc dot gnu dot org
@ 2004-11-06 15:48 ` pinskia at gcc dot gnu dot org
  4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-11-06 15:48 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.0.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13743


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2004-11-06 15:48 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-01-19 17:16 [Bug java/13743] New: Debug Info for Java breaks inferior calls aph at gcc dot gnu dot org
2004-01-19 17:22 ` [Bug java/13743] " aph at gcc dot gnu dot org
2004-01-23 11:13 ` aph at gcc dot gnu dot org
2004-02-27 14:57 ` aph at redhat dot com
2004-09-28 17:45 ` aph at gcc dot gnu dot org
2004-11-06 15:48 ` pinskia at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).