frequent hangs running ldd

Mark Geisert mark@maxrnd.com
Fri May 24 22:24:35 GMT 2024


On 5/24/2024 3:17 PM, Takashi Yano via Cygwin wrote:
> On 2024年5月24日 14:46:40 -0700 (PDT)
> Jeremy Drake wrote:
>>> Thanks for the report. However, I cannot reproduce the issue.
>>> If it always hangs in GetConsoleProcessList (), I doubt it is not a cygwin
>>> bug but a windows bug.
>>>>>> By any chance, is the number of processes that attach to the same pty more
>>> than 32768 in your environment?
>>>>>>> I doubt it, I was running a shell with this command:
>> find /usr/bin -name \*.dll -printf '%p:\n' -exec ldd '{}' \;
>> Thanks for the details. I could reproduce the issue.
> It seems that ldh.exe (which is called from ldd?) falls into infinite loop.
> However, gdb cannot attach to ldh.exe...

I could reproduce this too, even to not being able to attach gdb. If you 
exit that gdb session, I think you'll find the target process still 
stuck. You might be able to attach gdb again and it'll work. Here's what 
I found:
~ gdb -q /usr/bin/ldd
Reading symbols from /usr/bin/ldd...
Reading symbols from /usr/lib/debug//usr/bin/ldd.exe.dbg...
(gdb) att 6807
Attaching to program: /usr/bin/ldd, process 9732
[New Thread 9732.0x36a4]
[New Thread 9732.0x2bac]
(gdb) i thr
 Id Target Id Frame
 1 Thread 9732.0x31a8 "ldd" 0x00007ff8524f0b04 in 
ntdll!ZwWaitForDebugEvent
 () from /c/Windows/SYSTEM32/ntdll.dll
 2 Thread 9732.0x36a4 "sig" 0x00007ff8524ed174 in ntdll!ZwReadFile ()
 from /c/Windows/SYSTEM32/ntdll.dll
* 3 Thread 9732.0x2bac 0x00007ff8524f0be1 in ntdll!DbgBreakPoint ()
 from /c/Windows/SYSTEM32/ntdll.dll
(gdb) thr 1
[Switching to thread 1 (Thread 9732.0x31a8)]
#0 0x00007ff8524f0b04 in ntdll!ZwWaitForDebugEvent ()
 from /c/Windows/SYSTEM32/ntdll.dll
(gdb) bt
#0 0x00007ff8524f0b04 in ntdll!ZwWaitForDebugEvent ()
 from /c/Windows/SYSTEM32/ntdll.dll
#1 0x00007ff850165796 in WaitForDebugEventEx ()
 from /c/Windows/System32/KERNELBASE.dll
#2 0x0000000100401ba1 in report (
 in_fn=0x800009200 "/usr/bin/cygdialog-14.dll",
 multiple=multiple@entry=false)
 at /usr/src/debug/cygwin-3.5.3-1/winsup/utils/ldd.cc:325
#3 0x00000001004026de in main (argc=<optimized out>, argv=0xa000004d0)
 at /usr/src/debug/cygwin-3.5.3-1/winsup/utils/ldd.cc:439
(gdb) f 2
#2 0x0000000100401ba1 in report (
 in_fn=0x800009200 "/usr/bin/cygdialog-14.dll",
 multiple=multiple@entry=false)
 at /usr/src/debug/cygwin-3.5.3-1/winsup/utils/ldd.cc:325
325 	 if (!WaitForDebugEvent (&ev, INFINITE))
(gdb) list
320
321 	 while (1)
322 	 {
323 	 bool exitnow = false;
324 	 DWORD cont = DBG_CONTINUE;
325 	 if (!WaitForDebugEvent (&ev, INFINITE))
326 	 	break;
327 	 switch (ev.dwDebugEventCode)
328 	 	{
329 	 	case CREATE_PROCESS_DEBUG_EVENT:
(gdb)
..mark


More information about the Cygwin mailing list

AltStyle によって変換されたページ (->オリジナル) /