This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gij problem (3.4.4)


Hello,

I've got Java classes from source ("99 bottles of beer") compiled
to bytecode and from source or bytecode to a dynamically linked
executable working just fine, also Sun's JDK works on the generated
bytecode - however, gij does not, even without boehm-gc (which
prevented it from working before):

tg@odem:/home/tg/tmp $ gdb --args /usr/bin/gij bottles
GNU gdb 6.3.50.20050107
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-ecce-mirbsd8"...(no debugging symbols found)

(gdb) r
Starting program: /usr/bin/gij bottles
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)

Program received signal SIGSEGV, Segmentation fault.
0x02b88fa6 in _Jv_ClassReader::handleFieldsEnd () from /usr/lib/libgcj.so.5.0
(gdb) bt
#0  0x02b88fa6 in _Jv_ClassReader::handleFieldsEnd () from /usr/lib/libgcj.so.5.0
#1  0x02b8c408 in _Jv_ClassReader::read_fields () from /usr/lib/libgcj.so.5.0
#2  0x02b8c749 in _Jv_ClassReader::parse () from /usr/lib/libgcj.so.5.0
#3  0x02b8c974 in _Jv_DefineClass () from /usr/lib/libgcj.so.5.0
#4  0x02bab6eb in java::lang::VMClassLoader::defineClass () from /usr/lib/libgcj.so.5.0
#5  0x02bbb57a in java::lang::ClassLoader::defineClass () from /usr/lib/libgcj.so.5.0
#6  0x02cb6e37 in java::security::SecureClassLoader::defineClass () from /usr/lib/libgcj.so.5.0
#7  0x02c9d201 in java::net::URLClassLoader::findClass () from /usr/lib/libgcj.so.5.0
#8  0x02ba34e6 in gnu::gcj::runtime::VMClassLoader::findClass () from /usr/lib/libgcj.so.5.0
#9  0x02bbb748 in java::lang::ClassLoader::loadClass () from /usr/lib/libgcj.so.5.0
#10 0x02babae4 in _Jv_FindClass () from /usr/lib/libgcj.so.5.0
#11 0x02bab32b in java::lang::Class::forName () from /usr/lib/libgcj.so.5.0
#12 0x02bab44d in java::lang::Class::forName () from /usr/lib/libgcj.so.5.0
#13 0x02c27199 in gnu::gcj::runtime::FirstThread::run () from /usr/lib/libgcj.so.5.0
#14 0x02bb1962 in _Jv_ThreadRun () from /usr/lib/libgcj.so.5.0
#15 0x02b7d998 in _Jv_RunMain () from /usr/lib/libgcj.so.5.0
#16 0x1c000ade in ?? ()
#17 0x1c000870 in ?? ()
#18 0x00000002 in ?? ()
#19 0xcfbf4540 in ?? ()
#20 0xcfbf454c in ?? ()
#21 0x1c000d40 in ?? ()
#22 0x00000000 in ?? ()
(gdb) disas 0x02b88fa6
Dump of assembler code for function _ZN15_Jv_ClassReader15handleFieldsEndEv:
0x02b88ea8 <_ZN15_Jv_ClassReader15handleFieldsEndEv+0>: push   %ebp
0x02b88ea9 <_ZN15_Jv_ClassReader15handleFieldsEndEv+1>: mov    %esp,%ebp
0x02b88eab <_ZN15_Jv_ClassReader15handleFieldsEndEv+3>: push   %edi
0x02b88eac <_ZN15_Jv_ClassReader15handleFieldsEndEv+4>: push   %esi
0x02b88ead <_ZN15_Jv_ClassReader15handleFieldsEndEv+5>: sub    $0x40,%esp
0x02b88eb0 <_ZN15_Jv_ClassReader15handleFieldsEndEv+8>: mov    0x8(%ebp),%eax
0x02b88eb3 <_ZN15_Jv_ClassReader15handleFieldsEndEv+11>:        movl   $0x0,0xffffffe0(%ebp)
0x02b88eba <_ZN15_Jv_ClassReader15handleFieldsEndEv+18>:        mov    %eax,0xffffffe4(%ebp)
0x02b88ebd <_ZN15_Jv_ClassReader15handleFieldsEndEv+21>:        mov    0x1c(%eax),%edx
0x02b88ec0 <_ZN15_Jv_ClassReader15handleFieldsEndEv+24>:        movswl 0x34(%edx),%eax
0x02b88ec4 <_ZN15_Jv_ClassReader15handleFieldsEndEv+28>:        lea    0xffffffff(%eax),%esi
0x02b88ec7 <_ZN15_Jv_ClassReader15handleFieldsEndEv+31>:        mov    0x80(%edx),%ecx
0x02b88ecd <_ZN15_Jv_ClassReader15handleFieldsEndEv+37>:        cmp    %esi,0xffffffe0(%ebp)
0x02b88ed0 <_ZN15_Jv_ClassReader15handleFieldsEndEv+40>:        mov    0x2c(%edx),%edi
0x02b88ed3 <_ZN15_Jv_ClassReader15handleFieldsEndEv+43>:        mov    %ecx,0xffffffdc(%ebp)
0x02b88ed6 <_ZN15_Jv_ClassReader15handleFieldsEndEv+46>:        jge    0x2b88fa0 <_ZN15_Jv_ClassReader15handleFieldsEndEv+248>
0x02b88edc <_ZN15_Jv_ClassReader15handleFieldsEndEv+52>:        mov    0xffffffe0(%ebp),%eax
0x02b88edf <_ZN15_Jv_ClassReader15handleFieldsEndEv+55>:        shl    $0x4,%eax
0x02b88ee2 <_ZN15_Jv_ClassReader15handleFieldsEndEv+58>:        testb  $0x8,0x8(%eax,%edi,1)
0x02b88ee7 <_ZN15_Jv_ClassReader15handleFieldsEndEv+63>:        je     0x2b88fc8 <_ZN15_Jv_ClassReader15handleFieldsEndEv+288>
0x02b88eed <_ZN15_Jv_ClassReader15handleFieldsEndEv+69>:        incl   0xffffffe0(%ebp)
0x02b88ef0 <_ZN15_Jv_ClassReader15handleFieldsEndEv+72>:        cmp    %esi,0xffffffe0(%ebp)
0x02b88ef3 <_ZN15_Jv_ClassReader15handleFieldsEndEv+75>:        jl     0x2b88edc <_ZN15_Jv_ClassReader15handleFieldsEndEv+52>
0x02b88ef5 <_ZN15_Jv_ClassReader15handleFieldsEndEv+77>:        lea    0x0(%esi),%esi
0x02b88ef8 <_ZN15_Jv_ClassReader15handleFieldsEndEv+80>:        cmp    %esi,0xffffffe0(%ebp)
0x02b88efb <_ZN15_Jv_ClassReader15handleFieldsEndEv+83>:        je     0x2b88ff3 <_ZN15_Jv_ClassReader15handleFieldsEndEv+331>
0x02b88f01 <_ZN15_Jv_ClassReader15handleFieldsEndEv+89>:        mov    0xffffffe0(%ebp),%edx
0x02b88f04 <_ZN15_Jv_ClassReader15handleFieldsEndEv+92>:        shl    $0x4,%edx
0x02b88f07 <_ZN15_Jv_ClassReader15handleFieldsEndEv+95>:        mov    (%edx,%edi,1),%eax
0x02b88f0a <_ZN15_Jv_ClassReader15handleFieldsEndEv+98>:        mov    %eax,0xffffffe8(%ebp)
0x02b88f0d <_ZN15_Jv_ClassReader15handleFieldsEndEv+101>:       mov    0x4(%edx,%edi,1),%eax
0x02b88f11 <_ZN15_Jv_ClassReader15handleFieldsEndEv+105>:       mov    %eax,0xffffffec(%ebp)
0x02b88f14 <_ZN15_Jv_ClassReader15handleFieldsEndEv+108>:       mov    0x8(%edx,%edi,1),%eax
0x02b88f18 <_ZN15_Jv_ClassReader15handleFieldsEndEv+112>:       mov    %eax,0xfffffff0(%ebp)
0x02b88f1b <_ZN15_Jv_ClassReader15handleFieldsEndEv+115>:       mov    0xc(%edx,%edi,1),%eax
---Type <return> to continue, or q <return> to quit---
0x02b88f1f <_ZN15_Jv_ClassReader15handleFieldsEndEv+119>:       mov    %eax,0xfffffff4(%ebp)
0x02b88f22 <_ZN15_Jv_ClassReader15handleFieldsEndEv+122>:       mov    0xffffffdc(%ebp),%ecx
0x02b88f25 <_ZN15_Jv_ClassReader15handleFieldsEndEv+125>:       mov    0xffffffe0(%ebp),%eax
0x02b88f28 <_ZN15_Jv_ClassReader15handleFieldsEndEv+128>:       mov    (%ecx,%eax,2),%ax
0x02b88f2c <_ZN15_Jv_ClassReader15handleFieldsEndEv+132>:       mov    %esi,%ecx
0x02b88f2e <_ZN15_Jv_ClassReader15handleFieldsEndEv+134>:       shl    $0x4,%ecx
0x02b88f31 <_ZN15_Jv_ClassReader15handleFieldsEndEv+137>:       mov    %ecx,0xffffffc4(%ebp)
0x02b88f34 <_ZN15_Jv_ClassReader15handleFieldsEndEv+140>:       mov    %ax,0xffffffda(%ebp)
0x02b88f38 <_ZN15_Jv_ClassReader15handleFieldsEndEv+144>:       mov    (%ecx,%edi,1),%eax
0x02b88f3b <_ZN15_Jv_ClassReader15handleFieldsEndEv+147>:       mov    %eax,(%edx,%edi,1)
0x02b88f3e <_ZN15_Jv_ClassReader15handleFieldsEndEv+150>:       mov    0x4(%ecx,%edi,1),%eax
0x02b88f42 <_ZN15_Jv_ClassReader15handleFieldsEndEv+154>:       mov    %eax,0x4(%edx,%edi,1)
0x02b88f46 <_ZN15_Jv_ClassReader15handleFieldsEndEv+158>:       mov    0x8(%ecx,%edi,1),%eax
0x02b88f4a <_ZN15_Jv_ClassReader15handleFieldsEndEv+162>:       mov    %eax,0x8(%edx,%edi,1)
0x02b88f4e <_ZN15_Jv_ClassReader15handleFieldsEndEv+166>:       mov    0xc(%ecx,%edi,1),%eax
0x02b88f52 <_ZN15_Jv_ClassReader15handleFieldsEndEv+170>:       mov    %eax,0xc(%edx,%edi,1)
0x02b88f56 <_ZN15_Jv_ClassReader15handleFieldsEndEv+174>:       mov    0xffffffdc(%ebp),%eax
0x02b88f59 <_ZN15_Jv_ClassReader15handleFieldsEndEv+177>:       mov    (%eax,%esi,2),%ax
0x02b88f5d <_ZN15_Jv_ClassReader15handleFieldsEndEv+181>:       mov    0xffffffe0(%ebp),%edx
0x02b88f60 <_ZN15_Jv_ClassReader15handleFieldsEndEv+184>:       mov    0xffffffdc(%ebp),%ecx
0x02b88f63 <_ZN15_Jv_ClassReader15handleFieldsEndEv+187>:       mov    %ax,(%ecx,%edx,2)
0x02b88f67 <_ZN15_Jv_ClassReader15handleFieldsEndEv+191>:       mov    0xffffffe8(%ebp),%eax
0x02b88f6a <_ZN15_Jv_ClassReader15handleFieldsEndEv+194>:       mov    0xffffffc4(%ebp),%edx
0x02b88f6d <_ZN15_Jv_ClassReader15handleFieldsEndEv+197>:       mov    %eax,(%edx,%edi,1)
0x02b88f70 <_ZN15_Jv_ClassReader15handleFieldsEndEv+200>:       mov    0xffffffec(%ebp),%eax
0x02b88f73 <_ZN15_Jv_ClassReader15handleFieldsEndEv+203>:       mov    %eax,0x4(%edx,%edi,1)
0x02b88f77 <_ZN15_Jv_ClassReader15handleFieldsEndEv+207>:       mov    0xfffffff0(%ebp),%eax
0x02b88f7a <_ZN15_Jv_ClassReader15handleFieldsEndEv+210>:       mov    %eax,0x8(%edx,%edi,1)
0x02b88f7e <_ZN15_Jv_ClassReader15handleFieldsEndEv+214>:       mov    0xfffffff4(%ebp),%eax
0x02b88f81 <_ZN15_Jv_ClassReader15handleFieldsEndEv+217>:       mov    %eax,0xc(%edx,%edi,1)
0x02b88f85 <_ZN15_Jv_ClassReader15handleFieldsEndEv+221>:       mov    0xffffffda(%ebp),%ax
0x02b88f89 <_ZN15_Jv_ClassReader15handleFieldsEndEv+225>:       mov    %ax,(%ecx,%esi,2)
0x02b88f8d <_ZN15_Jv_ClassReader15handleFieldsEndEv+229>:       incl   0xffffffe0(%ebp)
0x02b88f90 <_ZN15_Jv_ClassReader15handleFieldsEndEv+232>:       dec    %esi
0x02b88f91 <_ZN15_Jv_ClassReader15handleFieldsEndEv+233>:       cmp    %esi,0xffffffe0(%ebp)
0x02b88f94 <_ZN15_Jv_ClassReader15handleFieldsEndEv+236>:       jl     0x2b88edc <_ZN15_Jv_ClassReader15handleFieldsEndEv+52>
0x02b88f9a <_ZN15_Jv_ClassReader15handleFieldsEndEv+242>:       mov    0xffffffe4(%ebp),%ecx
0x02b88f9d <_ZN15_Jv_ClassReader15handleFieldsEndEv+245>:       mov    0x1c(%ecx),%edx
0x02b88fa0 <_ZN15_Jv_ClassReader15handleFieldsEndEv+248>:       mov    0xffffffe0(%ebp),%eax
---Type <return> to continue, or q <return> to quit---
0x02b88fa3 <_ZN15_Jv_ClassReader15handleFieldsEndEv+251>:       shl    $0x4,%eax
0x02b88fa6 <_ZN15_Jv_ClassReader15handleFieldsEndEv+254>:       movzwl 0x8(%eax,%edi,1),%eax
0x02b88fab <_ZN15_Jv_ClassReader15handleFieldsEndEv+259>:       shr    $0x3,%eax
0x02b88fae <_ZN15_Jv_ClassReader15handleFieldsEndEv+262>:       and    $0x1,%eax
0x02b88fb1 <_ZN15_Jv_ClassReader15handleFieldsEndEv+265>:       cmp    $0x1,%al
0x02b88fb3 <_ZN15_Jv_ClassReader15handleFieldsEndEv+267>:       sbbl   $0xffffffff,0xffffffe0(%ebp)
0x02b88fb7 <_ZN15_Jv_ClassReader15handleFieldsEndEv+271>:       mov    0xffffffe0(%ebp),%ecx
0x02b88fba <_ZN15_Jv_ClassReader15handleFieldsEndEv+274>:       mov    %cx,0x36(%edx)
0x02b88fbe <_ZN15_Jv_ClassReader15handleFieldsEndEv+278>:       add    $0x40,%esp
0x02b88fc1 <_ZN15_Jv_ClassReader15handleFieldsEndEv+281>:       pop    %esi
0x02b88fc2 <_ZN15_Jv_ClassReader15handleFieldsEndEv+282>:       pop    %edi
0x02b88fc3 <_ZN15_Jv_ClassReader15handleFieldsEndEv+283>:       leave
0x02b88fc4 <_ZN15_Jv_ClassReader15handleFieldsEndEv+284>:       ret
0x02b88fc5 <_ZN15_Jv_ClassReader15handleFieldsEndEv+285>:       lea    0x0(%esi),%esi
0x02b88fc8 <_ZN15_Jv_ClassReader15handleFieldsEndEv+288>:       cmp    %esi,0xffffffe0(%ebp)
0x02b88fcb <_ZN15_Jv_ClassReader15handleFieldsEndEv+291>:       jge    0x2b88ef8 <_ZN15_Jv_ClassReader15handleFieldsEndEv+80>
0x02b88fd1 <_ZN15_Jv_ClassReader15handleFieldsEndEv+297>:       lea    0x0(%esi),%esi
0x02b88fd4 <_ZN15_Jv_ClassReader15handleFieldsEndEv+300>:       mov    %esi,%eax
0x02b88fd6 <_ZN15_Jv_ClassReader15handleFieldsEndEv+302>:       shl    $0x4,%eax
0x02b88fd9 <_ZN15_Jv_ClassReader15handleFieldsEndEv+305>:       testb  $0x8,0x8(%eax,%edi,1)
0x02b88fde <_ZN15_Jv_ClassReader15handleFieldsEndEv+310>:       jne    0x2b88ef8 <_ZN15_Jv_ClassReader15handleFieldsEndEv+80>
0x02b88fe4 <_ZN15_Jv_ClassReader15handleFieldsEndEv+316>:       dec    %esi
0x02b88fe5 <_ZN15_Jv_ClassReader15handleFieldsEndEv+317>:       cmp    %esi,0xffffffe0(%ebp)
0x02b88fe8 <_ZN15_Jv_ClassReader15handleFieldsEndEv+320>:       jl     0x2b88fd4 <_ZN15_Jv_ClassReader15handleFieldsEndEv+300>
0x02b88fea <_ZN15_Jv_ClassReader15handleFieldsEndEv+322>:       cmp    %esi,0xffffffe0(%ebp)
0x02b88fed <_ZN15_Jv_ClassReader15handleFieldsEndEv+325>:       jne    0x2b88f01 <_ZN15_Jv_ClassReader15handleFieldsEndEv+89>
0x02b88ff3 <_ZN15_Jv_ClassReader15handleFieldsEndEv+331>:       mov    0xffffffe4(%ebp),%eax
0x02b88ff6 <_ZN15_Jv_ClassReader15handleFieldsEndEv+334>:       mov    0x1c(%eax),%edx
0x02b88ff9 <_ZN15_Jv_ClassReader15handleFieldsEndEv+337>:       jmp    0x2b88fa0 <_ZN15_Jv_ClassReader15handleFieldsEndEv+248>
0x02b88ffb <_ZN15_Jv_ClassReader15handleFieldsEndEv+339>:       nop
End of assembler dump.
(gdb) 


Comparision with source (shortened):

/usr/src/gcc/libjava/defineclass.cc:1179
     18d:       66 8b 45 da             mov    0xffffffda(%ebp),%ax
     191:       66 89 04 71             mov    %ax,(%ecx,%esi,2)
/usr/src/gcc/libjava/defineclass.cc:1182
     195:       ff 45 e0                incl   0xffffffe0(%ebp)
/usr/src/gcc/libjava/defineclass.cc:1181
     198:       4e                      dec    %esi
/usr/src/gcc/libjava/defineclass.cc:1182
     199:       39 75 e0                cmp    %esi,0xffffffe0(%ebp)
     19c:       0f 8c 42 ff ff ff       jl     e4 <_ZN15_Jv_ClassReader15handleFieldsEndEv+0x34>
     1a2:       8b 4d e4                mov    0xffffffe4(%ebp),%ecx
     1a5:       8b 51 1c                mov    0x1c(%ecx),%edx
/usr/src/gcc/libjava/defineclass.cc:1185
    }
  
  if ((fields[low].flags & Modifier::STATIC) != 0) 
     1a8:       8b 45 e0                mov    0xffffffe0(%ebp),%eax
     1ab:       c1 e0 04                shl    $0x4,%eax
     1ae:       0f b7 44 38 08          movzwl 0x8(%eax,%edi,1),%eax
     1b3:       c1 e8 03                shr    $0x3,%eax
     1b6:       83 e0 01                and    $0x1,%eax
/usr/src/gcc/libjava/defineclass.cc:1186
    low += 1;
     1b9:       3c 01                   cmp    $0x1,%al
     1bb:       83 5d e0 ff             sbbl   $0xffffffff,0xffffffe0(%ebp)
/usr/src/gcc/libjava/defineclass.cc:1188

  def->static_field_count = low;
     1bf:       8b 4d e0                mov    0xffffffe0(%ebp),%ecx
     1c2:       66 89 4a 36             mov    %cx,0x36(%edx)
     1c6:       83 c4 40                add    $0x40,%esp
     1c9:       5e                      pop    %esi
     1ca:       5f                      pop    %edi
     1cb:       c9                      leave  
     1cc:       c3                      ret    
     1cd:       8d 76 00                lea    0x0(%esi),%esi
/usr/src/gcc/libjava/defineclass.cc:1167
     1d0:       39 75 e0                cmp    %esi,0xffffffe0(%ebp)
     1d3:       0f 8d 27 ff ff ff       jge    100 <_ZN15_Jv_ClassReader15handleFieldsEndEv+0x50>
     1d9:       8d 76 00                lea    0x0(%esi),%esi
     1dc:       89 f0                   mov    %esi,%eax
     1de:       c1 e0 04                shl    $0x4,%eax
     1e1:       f6 44 38 08 08          testb  $0x8,0x8(%eax,%edi,1)
     1e6:       0f 85 14 ff ff ff       jne    100 <_ZN15_Jv_ClassReader15handleFieldsEndEv+0x50>
     1ec:       4e                      dec    %esi
     1ed:       39 75 e0                cmp    %esi,0xffffffe0(%ebp)
     1f0:       7c ea                   jl     1dc <_ZN15_Jv_ClassReader15handleFieldsEndEv+0x12c>
/usr/src/gcc/libjava/defineclass.cc:1169
     1f2:       39 75 e0                cmp    %esi,0xffffffe0(%ebp)
     1f5:       0f 85 0e ff ff ff       jne    109 <_ZN15_Jv_ClassReader15handleFieldsEndEv+0x59>
     1fb:       8b 45 e4                mov    0xffffffe4(%ebp),%eax
     1fe:       8b 50 1c                mov    0x1c(%eax),%edx
     201:       eb a5                   jmp    1a8 <_ZN15_Jv_ClassReader15handleFieldsEndEv+0xf8>
     203:       90                      nop    

00000204 <_ZN15_Jv_ClassReader18handleMethodsBeginEi>:
_ZN15_Jv_ClassReader18handleMethodsBeginEi():
/usr/src/gcc/libjava/defineclass.cc:1195
}


A quick look into CVSweb shows me _Jv_ClassReader::handleFieldsEnd ()
is still the same as in 3.4.4. Does anyone have an idea where this
SIGSEGV could come from?

Thanks,
//mirabile
-- 
> Hi, does anyone sell openbsd stickers by themselves and not packaged
> with other products?
No, the only way I've seen them sold is for $40 with a free OpenBSD CD.
	-- Haroon Khalid and Steve Shockley in gmane.os.openbsd.misc


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