Hi,

I'm modifying DVM for research purpose, and the simple change I made
is to add a 4 bytes extra field to the Java object header. (struct
Object in dalvik/vm/oo/Object.h) After realizing that I need to adjust
all related offset constants, I also modified them. (MTERP_OFFSET in
dalvik/vm/mterp/common/asm-constants.h)

When I run the modified emulator, it doesn't complain about offsets,
but it crashes during the DVM startup. Following is the crash log.
Since the only change I made is adding an extra field to the
structure, I guess the crash is due to the wrong offset manipulation.
Perhaps there must be some code which uses hard-coded offset
manipulation constants. I would appreciate if anybody could point what
I am missing.

Thanks,
Sunghwan

/dalvikvm(  571): +++ dvmAddClassToHash '[Ljava/util/Hashtable$Entry;'
0x0 (isnew=1) --> 0x40012168
V/dalvikvm(  571): Created array class '[Ljava/util/Hashtable$Entry;'
0x0 (access=0x6000.0010)
V/dalvikvm(  571): +++ dvmAddClassToHash 'Ljava/lang/StringBuilder;'
0x0 (isnew=1) --> 0x400128e8
V/dalvikvm(  571): +++ dvmAddClassToHash
'Ljava/lang/AbstractStringBuilder;' 0x0 (isnew=1) --> 0x40012998
V/dalvikvm(  571): --- LinearRealloc(192) old=196
V/dalvikvm(  571): --- LinearRealloc(324) old=332
V/dalvikvm(  571): ----- type is 0x04 0, ptr=0x4190c468 [0x342440]
V/dalvikvm(  571): ----- type is 0x06 7, ptr=0x4190c78e [0x342766]
V/dalvikvm(  571): Array class '[Ljava/lang/reflect/Type;' 0x0 not
found; creating
V/dalvikvm(  571): +++ dvmAddClassToHash '[Ljava/lang/reflect/Type;'
0x0 (isnew=1) --> 0x40012a48
V/dalvikvm(  571): Created array class '[Ljava/lang/reflect/Type;' 0x0
(access=0x6000.0411)
V/dalvikvm(  571): ----- type is 0x1c 0, ptr=0x4190211a [0x3380f2]
V/dalvikvm(  571): ----- type is 0x18 1, ptr=0x4190211c [0x3380f4]
V/dalvikvm(  571): +++ dvmAddClassToHash
'Ljava/lang/SecurityException;' 0x0 (isnew=1) --> 0x40013420
V/dalvikvm(  571): HEY: converting valueObj from [Ljava/lang/Object;
to [Ljava/lang/Class;
V/dalvikvm(  571): +++ dvmAddClassToHash
'Lorg/apache/harmony/kernel/vm/ReflectionAccess;' 0x0 (isnew=1) -->
0x40013870
V/dalvikvm(  571): Array class '[Ljava/lang/reflect/AccessibleObject;'
0x0 not found; creating
V/dalvikvm(  571): +++ dvmAddClassToHash
'[Ljava/lang/reflect/AccessibleObject;' 0x0 (isnew=1) --> 0x400139e0
V/dalvikvm(  571): Created array class
'[Ljava/lang/reflect/AccessibleObject;' 0x0 (access=0x6000.0011)
V/dalvikvm(  571): ----- type is 0x1c 0, ptr=0x4190211a [0x3380f2]
V/dalvikvm(  571): ----- type is 0x18 1, ptr=0x4190211c [0x3380f4]
V/dalvikvm(  571): HEY: converting valueObj from [Ljava/lang/Object;
to [Ljava/lang/Class;
I/DEBUG   (  539): *** *** *** *** *** *** *** *** *** *** *** *** ***
*** *** ***
I/DEBUG   (  539): Build fingerprint:
'generic/generic/generic/:1.5/CUPCAKE/eng.sihm.20090728.203725:eng/test-keys'
I/DEBUG   (  539): pid: 571, tid: 571  >>> zygote <<<
I/DEBUG   (  539): signal 7 (SIGBUS), fault addr 00000000
I/DEBUG   (  539):  r0 00000001  r1 fffffffb  r2 40013870  r3 00000000
I/DEBUG   (  539):  r4 ad0dbe2c  r5 fffffffb  r6 00000001  r7 00000000
I/DEBUG   (  539):  r8 00000876  r9 0000bc60  10 41049cb8  fp 00000000
I/DEBUG   (  539):  ip ad0dc110  sp befa6100  lr ad0a08bf  pc ad0aa988
 cpsr a0000030
I/DEBUG   (  539):          #00  pc 000aa988  /system/lib/libdvm.so
I/DEBUG   (  539):          #01  pc 000a089a  /system/lib/libdvm.so
I/DEBUG   (  539):          #02  pc 000a08ba  /system/lib/libdvm.so
I/DEBUG   (  539):          #03  pc 00082212  /system/lib/libdvm.so
I/DEBUG   (  539):          #04  pc 00013e20  /system/lib/libdvm.so
I/DEBUG   (  539):          #05  pc 0001a36c  /system/lib/libdvm.so
I/DEBUG   (  539):          #06  pc 00019960  /system/lib/libdvm.so
I/DEBUG   (  539):          #07  pc 00096e4c  /system/lib/libdvm.so
I/DEBUG   (  539):          #08  pc 00096e8e  /system/lib/libdvm.so
I/DEBUG   (  539):          #09  pc 000a5f0c  /system/lib/libdvm.so
I/DEBUG   (  539):          #10  pc 000133a4  /system/lib/libdvm.so
I/DEBUG   (  539):          #11  pc 0001a36c  /system/lib/libdvm.so
I/DEBUG   (  539):          #12  pc 00019960  /system/lib/libdvm.so
I/DEBUG   (  539):          #13  pc 00096e4c  /system/lib/libdvm.so
I/DEBUG   (  539):          #14  pc 00096e8e  /system/lib/libdvm.so
I/DEBUG   (  539):          #15  pc 000a5f0c  /system/lib/libdvm.so
I/DEBUG   (  539):          #16  pc 000a5e38  /system/lib/libdvm.so
I/DEBUG   (  539):          #17  pc 000a5e38  /system/lib/libdvm.so
I/DEBUG   (  539):          #18  pc 000a5e38  /system/lib/libdvm.so
I/DEBUG   (  539):          #19  pc 000133a4  /system/lib/libdvm.so
I/DEBUG   (  539):          #20  pc 0001a36c  /system/lib/libdvm.so
I/DEBUG   (  539):          #21  pc 00019960  /system/lib/libdvm.so
I/DEBUG   (  539):          #22  pc 00096e4c  /system/lib/libdvm.so
I/DEBUG   (  539):          #23  pc 00096e8e  /system/lib/libdvm.so
I/DEBUG   (  539):          #24  pc 000a5f0c  /system/lib/libdvm.so
I/DEBUG   (  539):          #25  pc 000a7480  /system/lib/libdvm.so
I/DEBUG   (  539):          #26  pc 00010ea8  /system/lib/libdvm.so
I/DEBUG   (  539):          #27  pc 0001a36c  /system/lib/libdvm.so
I/DEBUG   (  539):          #28  pc 00019960  /system/lib/libdvm.so
I/DEBUG   (  539):          #29  pc 00096e4c  /system/lib/libdvm.so
I/DEBUG   (  539):          #30  pc 00096e8e  /system/lib/libdvm.so
I/DEBUG   (  539):          #31  pc 000a5f0c  /system/lib/libdvm.so
I/DEBUG   (  539): stack:
I/DEBUG   (  539):     befa60c0  400082c8
I/DEBUG   (  539):     befa60c4  ad08a383  /system/lib/libdvm.so
I/DEBUG   (  539):     befa60c8  62aba396
I/DEBUG   (  539):     befa60cc  ad0a1bb5  /system/lib/libdvm.so
I/DEBUG   (  539):     befa60d0  ad0fccf8
I/DEBUG   (  539):     befa60d4  00000010
I/DEBUG   (  539):     befa60d8  ad0dbe2c
I/DEBUG   (  539):     befa60dc  ad0fcd48
I/DEBUG   (  539):     befa60e0  ad0dbe2c
I/DEBUG   (  539):     befa60e4  00000010
I/DEBUG   (  539):     befa60e8  ad0dbe2c
I/DEBUG   (  539):     befa60ec  afe0ecd4  /system/lib/libc.so
I/DEBUG   (  539):     befa60f0  ad0dbe2c
I/DEBUG   (  539):     befa60f4  ad0dbe2c
I/DEBUG   (  539):     befa60f8  00000002
I/DEBUG   (  539):     befa60fc  41807d70
I/DEBUG   (  539): #00 befa6100  00000007
I/DEBUG   (  539):     befa6104  41807d70
I/DEBUG   (  539):     befa6108  ad0dbe2c
I/DEBUG   (  539):     befa610c  fffffffb
I/DEBUG   (  539):     befa6110  00000001
I/DEBUG   (  539):     befa6114  ad0a08bf  /system/lib/libdvm.so
I/DEBUG   (  539):     befa6118  4105108c
I/DEBUG   (  539):     befa611c  41807d70
I/DEBUG   (  539):     befa6120  00000001
I/DEBUG   (  539):     befa6124  ad0a089d  /system/lib/libdvm.so
I/DEBUG   (  539): #01 befa6128  ad0dbe2c
I/DEBUG   (  539):     befa612c  ad0a08bf  /system/lib/libdvm.so

--~--~---------~--~----~------------~-------~--~----~
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting
-~----------~----~----~----~------~----~------~--~---

Reply via email to