I have some orphan sub processes which are remains after the application exits.
The call stack looks like this. What would be the reason for the sub processes not stop? In the meantime, how to close the subprocess? So far the subprocess stops when the browser window is destroyed. Are there APIs that we can directly call to stop the render process?
- Code: Select all
ntdll.dll!77d5c7ec()
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
KernelBase.dll!760728c3()
kernel32.dll!75d77b89()
> libcef.dll!base::WaitableEvent::WaitMany(base::WaitableEvent * * events=0xa8006038, unsigned int count=1635612) Line 87 + 0x12 bytes
libcef.dll!sfntly::Lock::Unlock() Line 46
libcef.dll!IPC::SyncChannel::WaitForReply(IPC::SyncChannel::SyncContext * context=0x00209010, base::WaitableEvent * pump_messages_event=0x00000000) Line 509 + 0x10 bytes
libcef.dll!IPC::SyncChannel::Send(IPC::Message * message=0x001faa20) Line 493 + 0x7 bytes
libcef.dll!content::ChildThreadImpl::Send(IPC::Message * msg=0x001faa20) Line 535
libcef.dll!content::RenderThreadImpl::Send(IPC::Message * msg=0x011faa20) Line 857
libcef.dll!CefContentRendererClient::RenderThreadStarted() Line 448
libcef.dll!content::RenderThreadImpl::Init() Line 567
libcef.dll!content::RenderThreadImpl::RenderThreadImpl(scoped_ptr<base::MessageLoop,base::DefaultDeleter<base::MessageLoop> > main_message_loop={...}) Line 471
libcef.dll!content::RendererMain(const content::MainFunctionParams & parameters={...}) Line 197
libcef.dll!content::RunNamedProcessTypeMain(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & process_type="renderer", const content::MainFunctionParams & main_function_params={...}, content::ContentMainDelegate * delegate=0x0018fcd0) Line 383 + 0xd bytes
libcef.dll!content::ContentMainRunnerImpl::Run() Line 775 + 0x6 bytes
libcef.dll!content::ContentMain(const content::ContentMainParams & params={...}) Line 19 + 0x7 bytes
libcef.dll!CefExecuteProcess(const CefMainArgs & args={...}, CefRefPtr<CefApp> application={...}, void * windows_sandbox_info=0x00000000) Line 94 + 0xc bytes
libcef.dll!cef_execute_process(const _cef_main_args_t * args=0x0018feac, _cef_app_t * application=0x007b95a4, void * windows_sandbox_info=0x00000000) Line 140 + 0x11 bytes
cefrenderaaa.exe!CefExecuteProcess(const CefMainArgs & args={...}, CefRefPtr<CefApp> application={...}, void * windows_sandbox_info=0x00000000) Line 142 + 0x46 bytes C++
cefrenderaaa.exe!WinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpCmdLine=0x001d45fe, int nCmdShow=5) Line 65 + 0x21 bytes C++
cefrenderaaa.exe!__tmainCRTStartup() Line 589 + 0x35 bytes C
cefrenderaaa.exe!WinMainCRTStartup() Line 414 C
Thanks for all the information and advice,
jiaojiao