7018101: os::dll_address_to_function_name returning wrong answers in 64 bit

Mon, 14 Feb 2011 11:46:58 -0800

author
never
date
Mon, 14 Feb 2011 11:46:58 -0800
changeset 2566
2a57c59eb548
parent 2565
28bf941f445e
child 2567
850b2295a494

7018101: os::dll_address_to_function_name returning wrong answers in 64 bit
Reviewed-by: acorn, kvn, dsamersoff

src/os/solaris/vm/os_solaris.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/os/solaris/vm/os_solaris.cpp	Mon Feb 14 03:21:18 2011 -0800
     1.2 +++ b/src/os/solaris/vm/os_solaris.cpp	Mon Feb 14 11:46:58 2011 -0800
     1.3 @@ -1975,7 +1975,11 @@
     1.4        #ifndef RTLD_DL_SYMENT
     1.5        #define RTLD_DL_SYMENT 1
     1.6        #endif
     1.7 -      Sym * info;
     1.8 +#ifdef _LP64
     1.9 +      Elf64_Sym * info;
    1.10 +#else
    1.11 +      Elf32_Sym * info;
    1.12 +#endif
    1.13        if (dladdr1_func((void *)addr, &dlinfo, (void **)&info,
    1.14                         RTLD_DL_SYMENT)) {
    1.15          if ((char *)dlinfo.dli_saddr + info->st_size > (char *)addr) {
    1.16 @@ -6422,4 +6426,3 @@
    1.17     INTERRUPTIBLE_RETURN_INT_NORESTART(::bind(fd, him, len),\
    1.18       os::Solaris::clear_interrupted);
    1.19  }
    1.20 -

mercurial