Lavrentiev, Anton (NIH/NLM/NCBI) [C] via cygwin wrote:
Well, I don't think there's anything special that Cygwin does to load
executables, because these are essentially Windows processes, so they are
loaded by Windows, first and foremost.
But it gets even weirder. Below are two _consecutive!_ runs of ldd on the very
same executable. Why the output differs so drastically (including the unknown
dlls all of a sudden)?
1.
ntdll.dll => /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll (0x7ffc339d0000)
KERNEL32.DLL => /cygdrive/c/WINDOWS/System32/KERNEL32.DLL
(0x7ffc31a00000)
KERNELBASE.dll => /cygdrive/c/WINDOWS/System32/KERNELBASE.dll
(0x7ffc30090000)
cygbz2-1.dll => /usr/bin/cygbz2-1.dll (0x3f6a40000)
cygcom_err-2.dll => /usr/bin/cygcom_err-2.dll (0x3ef750000)
cyggssapi_krb5-2.dll => /usr/bin/cyggssapi_krb5-2.dll (0x3eceb0000)
cygiconv-2.dll => /usr/bin/cygiconv-2.dll (0x3ec980000)
cygpcre-1.dll => /usr/bin/cygpcre-1.dll (0x3eb1a0000)
cyggcc_s-seh-1.dll => /usr/bin/cyggcc_s-seh-1.dll (0x3ee3a0000)
cygstdc++-6.dll => /usr/bin/cygstdc++-6.dll (0x3ea280000)
cygz.dll => /cygdrive/u/2.4.0/release/Cygwin-64/bin/cygz.dll
(0x3aba30000)
cygk5crypto-3.dll => /usr/bin/cygk5crypto-3.dll (0x3ec300000)
cygwin1.dll => /cygdrive/u/2.4.0/release/Cygwin-64/bin/cygwin1.dll
(0x180040000)
??? => ??? (0xe80000)
??? => ??? (0x1440000)
??? => ??? (0xe80000)
Briefly, ldd acts as a Windows debugger starting up the given executable. It
receives LOAD_DLL_EVENTs from Windows and decodes the event info to print each
line of output.
The drastically lower memory addresses being shown on the last three lines lead
me to speculate these are due to Windows repositioning non-Cygwin DLLs, or maybe
Cygwin DLLs rebase doesn't know about, due to address space collisions at their
normal load address(es).
That said, ldd might be enhanced to show more info in these transient cases.
Patches thoughtfully considered...
..mark
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple