harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gregory Shimansky <gshiman...@gmail.com>
Subject Re: [drlvm][em64t] drlvm broken on em64t?
Date Tue, 12 Dec 2006 17:36:12 GMT
Geir Magnusson Jr. wrote:
> No one?

I think I've reproduced the same problem on ia32 fedora (on other 
linuxes everything works ok). I'm trying to investigate. The problem is 
in function GetSystemProperty in vm/vmi/src/vmi.cpp

146     vmiError JNICALL
147     GetSystemProperty(VMInterface *vmi, char *key, char **valuePtr)
148     {
149         char* value = get_property(key, JAVA_PROPERTIES);
150         *valuePtr = strdup(value);
151         destroy_property_value(value);
152         return VMI_ERROR_NONE;
153     }

called like this:

GetSystemProperty (vmi=0x97ca60, key=0x941e5c 
"org.apache.harmony.boot.class.path", valuePtr=0xbf98cd18)

The function get_property returns NULL, so strdup in line 150 crashes. I 
don't know yet why get_property("org.apache.harmony.boot.class.path", 
JAVA_PROPERTIES) returns NULL, but calling strdup unconditionally 
doesn't seem to be a good idea to me too.

> Geir Magnusson Jr. wrote:
>> Trying to get the snapshots out... :)
>>
>> I was trying r486163 and drlvm just crashes...
>>
>> Anyone else seeing this?  I'm on ubuntu 6 x86_64.  I don't want to 
>> blame luni, but w/ strace, I see the following :
>>
>> open("/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/build/deploy/jdk/jre/bin/libhyluni.so",

>> O_RDONLY) = 3
>> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 i\0\0\0"..., 
>> 640) = 640
>> fstat(3, {st_mode=S_IFREG|0755, st_size=1238859, ...}) = 0
>> mmap(NULL, 1263224, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 
>> 0) = 0x2aaabf6e8000
>> mprotect(0x2aaabf71d000, 1046136, PROT_NONE) = 0
>> mmap(0x2aaabf81c000, 4096, PROT_READ|PROT_WRITE, 
>> MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x34000) = 0x2aaabf81c000
>> close(3)                                = 0
>> rt_sigaction(SIGPIPE, NULL, {SIG_DFL}, 8) = 0
>> rt_sigaction(SIGPIPE, {SIG_IGN}, {SIG_DFL}, 8) = 0
>> stat("/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/build/deploy/jdk/jre/lib/boot/bootclasspath.properties",

>> {st_mode=S_IFREG|0644, st_size=6360, ...}) = 0
>> open("/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/build/deploy/jdk/jre/lib/boot/bootclasspath.properties",

>> O_RDONLY) = 3
>> fstat(3, {st_mode=S_IFREG|0644, st_size=6360, ...}) = 0
>> mmap(NULL, 6360, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 
>> 0x2aaabf81d000
>> close(3)                                = 0
>> munmap(0x2aaabf81d000, 6360)            = 0
>> --- SIGSEGV (Segmentation fault) @ 0 (0) ---
>> rt_sigaction(SIGSEGV, {SIG_DFL}, {0x2aaaac098530, [], 
>> SA_RESTORER|SA_STACK|SA_SIGINFO, 0x2aaaab8554d0}, 8) = 0
>> rt_sigreturn(0)                         = 0
>> --- SIGSEGV (Segmentation fault) @ 0 (0) ---
>> +++ killed by SIGSEGV +++
>>
>>
>>
>> geir
> 


-- 
Gregory


Mime
View raw message