2016-03-16 2 views
0

У меня есть приложение, использующее webrtc/coreaudio для мультимедиа, и это очень редко зависает на одном ПК.App зависает на RPC

WinDBG-х !analyze -v -hang дает следующее:

DEFAULT_BUCKET_ID: APPLICATION_HANG_BlockedOn_RPC 
PRIMARY_PROBLEM_CLASS: APPLICATION_HANG_BlockedOn_RPC 
BUCKET_ID: HANG_audioses!AudioServerDestroyStream+19 
FAILURE_BUCKET_ID:APPLICATION_HANG_BlockedOn_RPC_cfffffff_AudioSes.dll!AudioServerDestroyStream 
ANALYSIS_SOURCE: UM 
FAILURE_ID_HASH_STRING:um:application_hang_blockedon_rpc_cfffffff_audioses.dll!audioserverdestroystream 

с таким стеком вызовов:

ntdll!NtAlpcSendWaitReceivePort+0x12 
rpcrt4!LRPC_CASSOCIATION::AlpcSendWaitReceivePort+0x5d 
rpcrt4!LRPC_BASE_CCALL::DoSendReceive+0xa3 
rpcrt4!LRPC_BASE_CCALL::SendReceive+0x2f 
rpcrt4!LRPC_CCALL::SendReceive+0x25 
rpcrt4!I_RpcSendReceive+0x28 
rpcrt4!NdrSendReceive+0x31 
rpcrt4!NdrpSendReceive+0x9 
rpcrt4!NdrClientCall2+0x1a6 
AudioSes!AudioServerDestroyStream+0x19 
AudioSes!CAudioClient::DestroyRemoteStream+0x62 
AudioSes!CAudioClient::FinalRelease+0xd8 
AudioSes!ATL::CComObject<CAudioClient>::~CComObject<CAudioClient>+0x33 
AudioSes!ATL::CComObject<CAudioClient>::`scalar deleting destructor'+0xd 
AudioSes!ATL::CComObject<CAudioClient>::Release+0x27 
AudioSes!CAudioRenderClient::FinalRelease+0x4c 
AudioSes!ATL::CComObject<CAudioRenderClient>::~CComObject<CAudioRenderClient>+0x17 
AudioSes!ATL::CComObject<CAudioRenderClient>::`scalar deleting destructor'+0xd 
AudioSes!ATL::CComObject<CAudioRenderClient>::Release+0x27 
IPTLibrary!webrtc::AudioDeviceWindowsCore::StopPlayout+0x226 
IPTLibrary!webrtc::AudioDeviceModuleImpl::StopPlayout+0x2d 

И вот мой вопрос: как я могу узнать/найти то, что служба RPC-вызывается из AudioSes AudioServerDestroyStream!? Благодарю.

ответ

0
  1. настроить отладчик ядра
  2. найти в стеке дескриптор порта клиента ALPC
  3. находкой ядро ​​адрес порта ALPC обрабатывать port_handle данные
  4. печати о портах:! ALPC port_address
  5. Если вы все исправите, вы увидите адрес серверного процесса
  6. use! Команда процесса для печати информации abot процесс
Смежные вопросы