You'd need to decode the symbols to figure out what exactly went
wrong.  Since you got a bus error at address zero, I'm guessing
misalignment on a 64-bit field.  (It's possible / likely that some
code assumes the Object header size is a multiple of 8 bytes.)  Try
adding another 32-bit value to pad the sizeof(Object) to 16 bytes
instead of 12.


On Aug 9, 12:15 pm, Sunghwan Ihm <[email protected]> wrote:
> 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