[Lldb-commits] [PATCH] D92187: [lldb] [FreeBSD] Fix establishing DT_NEEDED libraries from dyld

Michał Górny via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Dec 1 04:06:58 PST 2020


mgorny added a comment.

Full logs below.

Linux:

  (lldb) log enable lldb dyld
  (lldb) run
  lldb             DynamicLoaderDarwin::UseDYLDSPI: Use old DynamicLoader plugin
  lldb             DynamicLoaderDarwin::UseDYLDSPI: Use old DynamicLoader plugin
  lldb             DYLDRendezvous::DYLDRendezvous exe module executable path set: '/home/mgorny/git/llvm-project/_build/a.out'
  lldb             DynamicLoaderPOSIXDYLD::DidLaunch()
  lldb             DynamicLoaderPOSIXDYLD::DidLaunch about to call ProbeEntry()
  lldb             Rendezvous structure is not set up yet. Trying to locate rendezvous breakpoint in the interpreter by symbol name.
  lldb             Successfully set rendezvous breakpoint at address 0x7ffff7fe1850 for pid 221689
  intern-state     DynamicLoaderPOSIXDYLD::RendezvousBreakpointHit called for pid 221689
  intern-state     DYLDRendezvous::Resolve address size: 8, padding 4
  intern-state     ResolveRendezvousAddress info_location = 0xffffffffffffffff
  intern-state     ResolveRendezvousAddress resolved via direct object file approach to 0x403ee8
  intern-state     ResolveRendezvousAddress reading pointer (8 bytes) from 0x403ee8
  intern-state     DYLDRendezvous::Resolve cursor = 0x7ffff7ffe0a0
  intern-state     DYLDRendezvous:
  intern-state        Address: 7ffff7ffe0a0
  intern-state        Version: 1
  intern-state        Link   : 7ffff7ffe1a0
  intern-state        Break  : 7ffff7fe1850
  intern-state        LDBase : 7ffff7fd1000
  intern-state        State  : add
  intern-state     DYLDRendezvous::UpdateSOEntriesFromRemote action = 1
  
  intern-state     DYLDRendezvous::SaveSOEntriesFromRemote soentry from module list: link_addr=7ffff7ffda08, base_addr=7ffff7fd1000, dyn_addr=7ffff7ffce28, filename=/lib64/ld-linux-x86-64.so.2
  intern-state     DYLDRendezvous::SaveSOEntriesFromRemote soentry from module list: link_addr=7ffff7ffe750, base_addr=7ffff7fcf000, dyn_addr=7ffff7fcf3a0, filename=linux-vdso.so.1
  intern-state     DynamicLoaderPOSIXDYLD::RendezvousBreakpointHit pid 221689 stop_when_images_change=false
  intern-state     DynamicLoaderPOSIXDYLD::RendezvousBreakpointHit called for pid 221689
  intern-state     DYLDRendezvous::Resolve address size: 8, padding 4
  intern-state     DYLDRendezvous::Resolve cursor = 0x7ffff7ffe0a0
  intern-state     DYLDRendezvous:
  intern-state        Address: 7ffff7ffe0a0
  intern-state        Version: 1
  intern-state        Link   : 7ffff7ffe1a0
  intern-state        Break  : 7ffff7fe1850
  intern-state        LDBase : 7ffff7fd1000
  intern-state        State  : consistent
  intern-state     DYLDRendezvous SOEntries:
  intern-state     
     SOEntry [1] /lib64/ld-linux-x86-64.so.2
  intern-state           Base : 7ffff7fd1000
  intern-state           Path : 0
  intern-state           Dyn  : 7ffff7ffce28
  intern-state           Next : 0
  intern-state           Prev : 0
  intern-state     
     SOEntry [2] linux-vdso.so.1
  intern-state           Base : 7ffff7fcf000
  intern-state           Path : 0
  intern-state           Dyn  : 7ffff7fcf3a0
  intern-state           Next : 0
  intern-state           Prev : 0
  intern-state     DYLDRendezvous::UpdateSOEntriesFromRemote action = 2
  
  intern-state     DYLDRendezvous::AddSOEntriesFromRemote add soentry: link_addr=7ffff7f8c000, base_addr=7ffff7f4f000, dyn_addr=7ffff7f86cb0, filename=/lib64/libedit.so.0
  intern-state     DYLDRendezvous::AddSOEntriesFromRemote add soentry: link_addr=7ffff7f8c4f0, base_addr=7ffff7d88000, dyn_addr=7ffff7f48b60, filename=/lib64/libc.so.6
  intern-state     DYLDRendezvous::AddSOEntriesFromRemote add soentry: link_addr=7ffff7f8c9e0, base_addr=7ffff7d4c000, dyn_addr=7ffff7d85cc8, filename=/lib64/libtinfo.so.6
  intern-state     DynamicLoaderPOSIXDYLD::RendezvousBreakpointHit pid 221689 stop_when_images_change=false
  Hello, world!
  Process 221689 exited with status = 0 (0x00000000) 
  
  Process 221689 launched: '/home/mgorny/git/llvm-project/_build/a.out' (x86_64)

FreeBSD:

  (lldb) run
  lldb             DynamicLoaderDarwin::UseDYLDSPI: Use old DynamicLoader plugin
  lldb             DynamicLoaderDarwin::UseDYLDSPI: Use old DynamicLoader plugin
  lldb             DYLDRendezvous::DYLDRendezvous exe module executable path set: '/home/mgorny/llvm-project/_build/a.out'
  lldb             DynamicLoaderPOSIXDYLD::DidLaunch()
  lldb             DynamicLoaderPOSIXDYLD::DidLaunch about to call ProbeEntry()
  lldb             Rendezvous structure is not set up yet. Trying to locate rendezvous breakpoint in the interpreter by symbol name.
  lldb             Successfully set rendezvous breakpoint at address 0x80020fe20 for pid 3770
  intern-state     DynamicLoaderPOSIXDYLD::RendezvousBreakpointHit called for pid 3770
  intern-state     DYLDRendezvous::Resolve address size: 8, padding 4
  intern-state     ResolveRendezvousAddress info_location = 0xffffffffffffffff
  intern-state     ResolveRendezvousAddress resolved via direct object file approach to 0x202a50
  intern-state     ResolveRendezvousAddress reading pointer (8 bytes) from 0x202a50
  intern-state     DYLDRendezvous::Resolve cursor = 0x800229900
  intern-state     DYLDRendezvous:
  intern-state        Address: 800229900
  intern-state        Version: 0
  intern-state        Link   : 80022e240
  intern-state        Break  : 80020fe20
  intern-state        LDBase : 3
  intern-state        State  : consistent
  intern-state     DYLDRendezvous::UpdateSOEntriesFromRemote action = 1
  
  intern-state     DYLDRendezvous::SaveSOEntriesFromRemote soentry from module list: link_addr=80022e240, base_addr=200000, dyn_addr=202a28, filename=/home/mgorny/llvm-project/_build/a.out
  intern-state     DYLDRendezvous::SaveSOEntriesFromRemote soentry from module list: link_addr=80022e640, base_addr=80024c000, dyn_addr=8002815c0, filename=/lib/libedit.so.7
  intern-state     DYLDRendezvous::SaveSOEntriesFromRemote soentry from module list: link_addr=80022ea40, base_addr=800287000, dyn_addr=80044f058, filename=/lib/libc.so.7
  intern-state     DYLDRendezvous::SaveSOEntriesFromRemote soentry from module list: link_addr=80022ee40, base_addr=80067d000, dyn_addr=8006db830, filename=/lib/libncursesw.so.8
  intern-state     DYLDRendezvous::SaveSOEntriesFromRemote soentry from module list: link_addr=800229580, base_addr=800203000, dyn_addr=800227af0, filename=/libexec/ld-elf.so.1
  intern-state     DynamicLoaderPOSIXDYLD::RendezvousBreakpointHit pid 3770 stop_when_images_change=false
  Hello world
  Process 3770 exited with status = 0 (0x00000000) 
  
  Process 3770 launched: '/home/mgorny/llvm-project/_build/a.out' (x86_64)

(the test program links to libc and libedit, the latter links to libtinfo/libncursesw appropriately)


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D92187/new/

https://reviews.llvm.org/D92187



More information about the lldb-commits mailing list