New issue
Advanced search Search tips

Issue 740428 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug



Sign in to add a comment

Debugging content_shell with --single-process crashes on Visual Studio.

Project Member Reported by yoichio@chromium.org, Jul 10 2017

Issue description

What steps will reproduce the problem?
(1) Suppose we have mysolution.sln on VisualStudio.
(2) Add content_shell.exe with "Add Exisiting Item" from menu on the solution.
(3) Set "Arguments: --single-process" from menu of added content_shell.
(4) F5 to start the process attaching debugger.
(5) Crashes.

Here is stacktrace: 
 	base.dll!base::debug::BreakDebugger() Line 21	C++
 	base.dll!logging::LogMessage::~LogMessage() Line 787	C++
>	base.dll!base::win::AssertComInitialized(const char * message) Line 72	C++
 	base.dll!base::win::`anonymous namespace'::HookManager::DCheckedCoCreateInstance(const _GUID & rclsid, IUnknown * pUnkOuter, unsigned long dwClsContext, const _GUID & riid, void * * ppv) Line 247	C++
 	tiptsf.dll!700d6004()	Unknown
 	[Frames below may be incorrect and/or missing, no symbols loaded for tiptsf.dll]	
 	tiptsf.dll!700d645f()	Unknown
 	tiptsf.dll!700d4cb3()	Unknown
 	[External Code]	
 	base.dll!base::MessagePumpForUI::ProcessPumpReplacementMessage() Line 380	C++
 	base.dll!base::MessagePumpForUI::ProcessMessageHelper(const tagMSG & msg) Line 360	C++
 	base.dll!base::MessagePumpForUI::ProcessNextWindowsMessage() Line 339	C++
 	base.dll!base::MessagePumpForUI::DoRunLoop() Line 169	C++
 	base.dll!base::MessagePumpWin::Run(base::MessagePump::Delegate * delegate) Line 58	C++
 	base.dll!base::MessageLoop::Run() Line 370	C++
 	base.dll!base::RunLoop::Run() Line 112	C++
 	base.dll!base::Thread::Run(base::RunLoop * run_loop) Line 256	C++
 	base.dll!base::Thread::ThreadMain() Line 341	C++
 	base.dll!base::`anonymous namespace'::ThreadFunc(void * params) Line 91	C++


 
Components: -Internals Internals>TaskScheduler
Owner: robliao@chromium.org
Status: Assigned (was: Untriaged)
Rovert, could you take a look? This issue prohibits me debugging efficiently.
My gn args is :
is_component_build = true
enable_nacl = false
is_win_fastlink = true
target_cpu = "x86"
is_debug = true
It appears content_shell needs to initialize COM.
Cc: robliao@chromium.org
Owner: yoichio@chromium.org
I'm not able to repro this with directly running content_shell. Can you update the stack above with symbols fully resolved?

This works fine for me:
c:\Debuggersx86\windbg.exe -g -G -o out\Debug\content_shell.exe --single-process
Owner: robliao@chromium.org
I didn't repro with windbg eigher but still have with VisualStudio.
Once I loaded windows symbols, the above crash was gone,
but I got another stack:
>	base.dll!base::win::AssertComInitialized(const char * message) Line 71	C++
 	base.dll!base::win::`anonymous namespace'::HookManager::DCheckedCoCreateInstance(const _GUID & rclsid, IUnknown * pUnkOuter, unsigned long dwClsContext, const _GUID & riid, void * * ppv) Line 247	C++
 	[External Code]	
 	nodoka.dll!19ae1aa5()	Unknown
 	[Frames below may be incorrect and/or missing, no symbols loaded for nodoka.dll]	
 	[External Code]	
 	nodoka.dll!19ae268c()	Unknown
 	[External Code]	
 	base.dll!base::MessagePumpForUI::ProcessPumpReplacementMessage() Line 380	C++
 	base.dll!base::MessagePumpForUI::ProcessMessageHelper(const tagMSG & msg) Line 360	C++
 	base.dll!base::MessagePumpForUI::ProcessNextWindowsMessage() Line 339	C++

nodoka.dll is a kind of keybinding software I install.
Owner: yoichio@chromium.org
Does the crash stop reproing if you disable nodoka?
No.
>	base.dll!base::debug::BreakDebugger() Line 21	C++
 	base.dll!logging::LogMessage::~LogMessage() Line 787	C++
 	base.dll!base::win::AssertComInitialized(const char * message) Line 72	C++
 	base.dll!base::win::`anonymous namespace'::HookManager::DCheckedCoCreateInstance(const _GUID & rclsid, IUnknown * pUnkOuter, unsigned long dwClsContext, const _GUID & riid, void * * ppv) Line 247	C++
 	[External Code]	
 	base.dll!base::MessagePumpForUI::ProcessPumpReplacementMessage() Line 380	C++
 	base.dll!base::MessagePumpForUI::ProcessMessageHelper(const tagMSG & msg) Line 360	C++
 	base.dll!base::MessagePumpForUI::ProcessNextWindowsMessage() Line 339	C++
 	base.dll!base::MessagePumpForUI::DoRunLoop() Line 169	C++
 	base.dll!base::MessagePumpWin::Run(base::MessagePump::Delegate * delegate) Line 58	C++
 	base.dll!base::MessageLoop::Run() Line 370	C++
 	base.dll!base::RunLoop::Run() Line 112	C++
 	base.dll!base::Thread::Run(base::RunLoop * run_loop) Line 256	C++
 	base.dll!base::Thread::ThreadMain() Line 341	C++
 	base.dll!base::`anonymous namespace'::ThreadFunc(void * params) Line 91	C++

Can you have VS dig into that [External Code] portion? That's masking the real caller.
Without nodoka:
>	base.dll!base::debug::BreakDebugger() Line 21	C++
 	base.dll!logging::LogMessage::~LogMessage() Line 787	C++
 	base.dll!base::win::AssertComInitialized(const char * message) Line 72	C++
 	base.dll!base::win::`anonymous namespace'::HookManager::DCheckedCoCreateInstance(const _GUID & rclsid, IUnknown * pUnkOuter, unsigned long dwClsContext, const _GUID & riid, void * * ppv) Line 247	C++
 	tiptsf.dll!CImmersiveFocusTracker::_HandleAutomationEvent(unsigned long,struct HWND__ *,long)	Unknown
 	tiptsf.dll!CImmersiveFocusTracker::HandleAutomationEvent()	Unknown
 	tiptsf.dll!TabletMsgWndProc()	Unknown
 	user32.dll!_DispatchHookW@16()	Unknown
 	user32.dll!_CallHookWithSEH@16()	Unknown
 	user32.dll!___fnHkINLPMSG@4()	Unknown
 	ntdll.dll!_KiUserCallbackDispatcher@12()	Unknown
 	user32.dll!_PeekMessageW@20()	Unknown
 	base.dll!base::MessagePumpForUI::ProcessPumpReplacementMessage() Line 380	C++
 	base.dll!base::MessagePumpForUI::ProcessMessageHelper(const tagMSG & msg) Line 360	C++

With nodoka:
>	base.dll!base::debug::BreakDebugger() Line 21	C++
 	base.dll!logging::LogMessage::~LogMessage() Line 787	C++
 	base.dll!base::win::AssertComInitialized(const char * message) Line 72	C++
 	base.dll!base::win::`anonymous namespace'::HookManager::DCheckedCoCreateInstance(const _GUID & rclsid, IUnknown * pUnkOuter, unsigned long dwClsContext, const _GUID & riid, void * * ppv) Line 247	C++
 	tiptsf.dll!CImmersiveFocusTracker::_HandleAutomationEvent(unsigned long,struct HWND__ *,long)	Unknown
 	tiptsf.dll!CImmersiveFocusTracker::HandleAutomationEvent()	Unknown
 	tiptsf.dll!TabletMsgWndProc()	Unknown
 	user32.dll!_DispatchHookW@16()	Unknown
 	user32.dll!_CallHookWithSEH@16()	Unknown
 	user32.dll!___fnHkINLPMSG@4()	Unknown
 	ntdll.dll!_KiUserCallbackDispatcher@12()	Unknown
 	nodoka.dll!19351aa5()	Unknown
 	[Frames below may be incorrect and/or missing, no symbols loaded for nodoka.dll]	
 	user32.dll!_DispatchHookW@16()	Unknown
 	user32.dll!_CallHookWithSEH@16()	Unknown
 	user32.dll!___fnHkINLPMSG@4()	Unknown
 	ntdll.dll!_KiUserCallbackDispatcher@12()	Unknown
 	nodoka.dll!1935268c()	Unknown
 	user32.dll!_DispatchHookW@16()	Unknown
 	user32.dll!_CallHookWithSEH@16()	Unknown
 	user32.dll!___fnHkINLPMSG@4()	Unknown
 	ntdll.dll!_KiUserCallbackDispatcher@12()	Unknown
 	user32.dll!_PeekMessageW@20()	Unknown
 	base.dll!base::MessagePumpForUI::ProcessPumpReplacementMessage() Line 380	C++
no nodoka

Anyway, tiptsf.dll is culprit? 
Status: Fixed (was: Assigned)
Once I disabled "Touch Keyboard and Handwriting Panel Serviceā€, it works:
https://www.howtogeek.com/259900/how-to-permanently-disable-the-touch-keyboard-in-windows-8-and-10/

Thanks.

Sign in to add a comment