More problems with AIX-4.1

Daniel Veillard Daniel.Veillard at imag.fr
Thu Mar 27 06:06:04 PST 1997


Still on an IBM with AIX 4.1, running the interpreter :

(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /tahiti/diffusion/opera/RS6000/bin/amaya 

Program received signal SIGSEGV, Segmentation fault.
0x1010dcbc in internalLockMutex (mux=0xdeadbef3) at locks.c:40
locks.c:40: No such file or directory.
(gdb) up
#1  0x1010c61c in soft_monitorenter (o=0xdeadbeef) at soft.c:174
soft.c:174: No such file or directory.
(gdb) up
#2  0x101996a4 in virtualMachine (meth=0x208bab08, arg=0x2ff20c50, 
    retval=0x2ff2162c) at machine.c:175
175                     soft_monitorenter(mobj);
(gdb) l
170                             mobj = &meth->class->head;
171                     }
172                     else {
173                             mobj = (Hjava_lang_Object*)lcl[0].v.taddr;
174                     }
175                     soft_monitorenter(mobj);
176             }       
177     
178             sp = &lcl[meth->localsz + meth->stacksz];
179     
(gdb) p mobj = (Hjava_lang_Object*)lcl[0].v.taddr
$9 = (Hjava_lang_Object *) 0xdeadbeef
(gdb) 

(gdb) print *meth
$1 = {name = 0x208b2d40, signature = 0x208b89e0, accflags = 36, __align__ = 0, 
  code = 0x208bc4e0 "*Y´", codelen = 24, insn = 0x0, ncode_start = 0x0, 
  ncode = 0x0, ncode_end = 0x0, exception_table = 0x0, 
  exception_table_len = 0, stacksz = 3, localsz = 2, ins = 1, outs = 0, 
  class = 0x208b16d0, lines = 0x208bc520, idx = 19}
(gdb) print *arg
$2 = {v = {tint = 546715824, tword = 546715824, tlong = 0x209638b000001dd0, 
    tfloat = 2.54485011e-19, tdouble = 1.0607042422092812e-151, 
    taddr = 0x209638b0, tstr = 0x209638b0 " \204\220`"}}
(gdb) print meth->class->head
$3 = {dtable = 0x20848320, mux = {holder = 0x0, count = 0, muxWaiters = 0x0}, 
  cv = {cvWaiters = 0x0, mux = 0x0}}
(gdb) print methaccflags
$4 = 36
(gdb) print /x methaccflags
$5 = 0x24

  The 0xdeadbeef looks suspiciously as an uninitialized variable. On AIX
when a process starts all it's register file (except useed registers) are
initialized to this special value. What is surprizing is that this value
vas saved in memory ....
  Any idea ?

Daniel
-- 
Daniel Veillard at w3.org      | W3C / INRIA Rhone-Alpes | Today's Bookmarks :
Daniel.Veillard at inrialpes.fr| 655 av de l'Europe      | Linux, WWW, Java,
Tel : +33 04 76 61 53 85    | 38330 Montbonnot        | badminton, Kaffe,
Fax : +33 04 76 54 76 15    | France                  | Amaya and CSS.
Home: +33 04 76 63 05 86    | http://opera.inrialpes.fr/veillard




More information about the kaffe mailing list