[Lldb-commits] [PATCH] D11465: Fix "process load/unload" on android

Pavel Labath via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Fri Jul 28 11:34:27 PDT 2017


labath added inline comments.


================
Comment at: lldb/trunk/source/Plugins/Platform/Android/PlatformAndroid.cpp:389
+                   struct __lldb_dlopen_result { void *image_ptr; const char *error_str; } the_result;
+                   the_result.image_ptr = __dl_dlopen ("%s", 2);
+                   if (the_result.image_ptr == (void*)0x0)
----------------
nitesh.jain wrote:
> Hi Tamas,
> 
> When I run "process load libloadunload_a.so --install" its fail with error Couldn't lookup symbols: __dl_dlerror, __dl_dlopen.  
> 
> Symbol table contains 13 entries:
>    Num:    Value  Size Type    Bind   Vis      Ndx Name
>      0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
>      1: 00000304     5 FUNC    GLOBAL DEFAULT    5 android_dlopen_ext
>      2: 00000309     5 FUNC    GLOBAL DEFAULT    5 android_get_LD_LIBRARY_PA
>      3: 0000030e     5 FUNC    GLOBAL DEFAULT    5 android_update_LD_LIBRARY
>      4: 00000313     5 FUNC    GLOBAL DEFAULT    5 dl_iterate_phdr
>      5: 00000318     5 FUNC    GLOBAL DEFAULT    5 **dladdr**
>      6: 0000031d     5 FUNC    GLOBAL DEFAULT    5 **dlclose**
>      7: 00000322     5 FUNC    GLOBAL DEFAULT    5 **dlerror**
>      8: 00000327     5 FUNC    GLOBAL DEFAULT    5 **dlopen**
>      9: 0000032c     5 FUNC    GLOBAL DEFAULT    5 dlsym
>     10: 00002000     0 NOTYPE  GLOBAL DEFAULT  ABS _edata
>     11: 00002000     0 NOTYPE  GLOBAL DEFAULT  ABS __bss_start
>     12: 00002000     0 NOTYPE  GLOBAL DEFAULT  ABS _end
> 
> The symbols are not prefix with "__dl_" . We are using SDK version 25 for MIP64r6 target. 
> 
> generic_mips64:/ # getprop ro.build.version.sdk
> 25
> 
> Even we are not seeing prefix "__dl_" added to X86-64 dynamic symbol
> Symbol table '.dynsym' contains 12 entries:
>    Num:    Value          Size Type    Bind   Vis      Ndx Name
>      0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND
>      1: 0000000000000442     6 FUNC    GLOBAL DEFAULT    7 dl_iterate_phdr@@LIBC
>      2: 000000000000043c     6 FUNC    GLOBAL DEFAULT    7 android_dlopen_ext@@LIBC
>      3: 000000000000044e     6 FUNC    GLOBAL DEFAULT    7 dlclose@@LIBC
>      4: 0000000000000448     6 FUNC    GLOBAL DEFAULT    7 dladdr@@LIBC
>      5: 000000000000045a     6 FUNC    GLOBAL DEFAULT    7 dlopen@@LIBC
>      6: 0000000000000454     6 FUNC    GLOBAL DEFAULT    7 dlerror@@LIBC
>      7: 0000000000000460     6 FUNC    GLOBAL DEFAULT    7 dlsym@@LIBC
>      8: 0000000000002000     0 NOTYPE  GLOBAL DEFAULT  ABS _edata
>      9: 0000000000002000     0 NOTYPE  GLOBAL DEFAULT  ABS __bss_start
>     10: 0000000000002000     0 NOTYPE  GLOBAL DEFAULT  ABS _end
>     11: 0000000000000000     0 OBJECT  GLOBAL DEFAULT  ABS LIBC
> 
> Symbol table '.symtab' contains 14 entries:
>    Num:    Value          Size Type    Bind   Vis      Ndx Name
>      0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND
>      1: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS tmp-platform.c
>      2: 0000000000001ee0   288 OBJECT  LOCAL  HIDDEN    10 _DYNAMIC
>      3: 0000000000000000     0 OBJECT  GLOBAL DEFAULT  ABS LIBC
>      4: 0000000000000442     6 FUNC    GLOBAL DEFAULT    7 dl_iterate_phdr
>      5: 000000000000043c     6 FUNC    GLOBAL DEFAULT    7 android_dlopen_ext
>      6: 000000000000044e     6 FUNC    GLOBAL DEFAULT    7 dlclose
>      7: 0000000000000448     6 FUNC    GLOBAL DEFAULT    7 dladdr
>      8: 000000000000045a     6 FUNC    GLOBAL DEFAULT    7 dlopen
> 
Is it possible you are using a **preview** version of android sdk? These had the new dlopen symbols even though the official android sdk's still used the __dl_dlopen symbols?


Repository:
  rL LLVM

https://reviews.llvm.org/D11465





More information about the lldb-commits mailing list