gpt4 book ai didi

c++ - 应用程序在 freelibrary 时挂起

转载 作者:太空宇宙 更新时间:2023-11-04 12:19:39 27 4
gpt4 key购买 nike

我在现场得到了 drwtsn32 生成的故障转储,显示应用程序在调用系统 API FreeLibrary 时被阻止。这是类堆栈:

ChildEBP RetAddr  Args to Child
06f0fc14 7c827d29 7c83d266 00000718 00000000 ntdll!KiFastSystemCallRet (FPO: [0,0,0])
06f0fc18 7c83d266 00000718 00000000 00000000 ntdll!ZwWaitForSingleObject+0xc (FPO: [3,0,0])
06f0fc54 7c83d2b1 00000718 00000004 00000000 ntdll!RtlpWaitOnCriticalSection+0x1a3 (FPO: [2,7,4])
06f0fc74 7c839874 7c8897a0 00000000 00000000 ntdll!RtlEnterCriticalSection+0xa8 (FPO: [1,1,0])
06f0fd7c 77e6b1bb 014e0000 00000000 02a67430 ntdll!LdrUnloadDll+0x35 (FPO: [SEH])
06f0fd90 005e8cdd 014e0000 02a4bc88 06f0fdbc kernel32!FreeLibrary+0x41 (FPO: [1,0,0])
....

我注意到行 ntdll!RtlEnterCriticalSection+0xa8 (FPO: [1,1,0]),我认为这应该是 critical_section 相关的。所以我在 windbg 中使用 dt 命令来显示关于它的 CRITICAL_SECTION 信息

0:037> dt 7c8897a0 RTL_CRITICAL_SECTION
SiteAdminSvc!RTL_CRITICAL_SECTION
+0x000 DebugInfo : 0x7c8897c0 _RTL_CRITICAL_SECTION_DEBUG
+0x004 LockCount : -18
+0x008 RecursionCount : 1
+0x00c OwningThread : 0x00002098
+0x010 LockSemaphore : 0x00000718
+0x014 SpinCount : 0

+0x00c OwningThread : 0x00002098 这行显示 critical_section 被线程 0x2098 持有,但奇怪的是我什至在线程列表中找不到这样的线程。

是否有任何其他方法可以找出 FreeLibrary 被阻止的原因?

PS:关于鸿还有一个故事。如果我使用远程调试器调试应用程序,则不会遇到挂起。但是如果我在服务器机器上启动应用程序。它确实非常感谢

最佳答案

关于c++ - 应用程序在 freelibrary 时挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5829200/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com