comparison src/os/solaris/vm/os_solaris.cpp @ 2259:2a57c59eb548

7018101: os::dll_address_to_function_name returning wrong answers in 64 bit Reviewed-by: acorn, kvn, dsamersoff
author never
date Mon, 14 Feb 2011 11:46:58 -0800
parents 34d64ad817f4
children 850b2295a494
comparison
equal deleted inserted replaced
2258:28bf941f445e 2259:2a57c59eb548
1973 // not have dladdr1 support. Make sure there is a value for 1973 // not have dladdr1 support. Make sure there is a value for
1974 // RTLD_DL_SYMENT. 1974 // RTLD_DL_SYMENT.
1975 #ifndef RTLD_DL_SYMENT 1975 #ifndef RTLD_DL_SYMENT
1976 #define RTLD_DL_SYMENT 1 1976 #define RTLD_DL_SYMENT 1
1977 #endif 1977 #endif
1978 Sym * info; 1978 #ifdef _LP64
1979 Elf64_Sym * info;
1980 #else
1981 Elf32_Sym * info;
1982 #endif
1979 if (dladdr1_func((void *)addr, &dlinfo, (void **)&info, 1983 if (dladdr1_func((void *)addr, &dlinfo, (void **)&info,
1980 RTLD_DL_SYMENT)) { 1984 RTLD_DL_SYMENT)) {
1981 if ((char *)dlinfo.dli_saddr + info->st_size > (char *)addr) { 1985 if ((char *)dlinfo.dli_saddr + info->st_size > (char *)addr) {
1982 if (buf != NULL) { 1986 if (buf != NULL) {
1983 if (!Decoder::demangle(dlinfo.dli_sname, buf, buflen)) 1987 if (!Decoder::demangle(dlinfo.dli_sname, buf, buflen))
6420 6424
6421 int os::bind(int fd, struct sockaddr *him, int len) { 6425 int os::bind(int fd, struct sockaddr *him, int len) {
6422 INTERRUPTIBLE_RETURN_INT_NORESTART(::bind(fd, him, len),\ 6426 INTERRUPTIBLE_RETURN_INT_NORESTART(::bind(fd, him, len),\
6423 os::Solaris::clear_interrupted); 6427 os::Solaris::clear_interrupted);
6424 } 6428 }
6425