Created
May 22, 2019 06:30
-
-
Save metathinker/33d8cf0f191e92176f4f9852927f7e54 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
======================================= | |
VERIFIER STOP 0000000000000305: pid 0x64: Incorrect object type for handle. | |
FFFFFFFFFFFFFFFF : Handle value. ==> INVALID_HANDLE_VALUE | |
0000006E33D0E2D8 : Object type name. Use du to display it ==> "Process" | |
00007FFE88E46900 : Expected object type name. Use du to display it ==> "Event" | |
0000000000000000 : Not used. | |
partial stack: | |
[0x3] vfbasics!AVrfpNtSetEvent + 0x34 | |
[0x4] KERNELBASE!SetEvent + 0xd | |
[0x5] TerminalControl!Microsoft::Console::Render::Renderer::_NotifyPaintFrame + 0xa | |
[0x6] TerminalControl!Microsoft::Console::Render::Renderer::TriggerFontChange + 0xc9 | |
[0x7] TerminalControl!winrt::Microsoft::Terminal::TerminalControl::implementation::TermControl::_UpdateFont + 0x16c | |
[0x8] TerminalControl!winrt::Microsoft::Terminal::TerminalControl::implementation::TermControl::_InitializeTerminal + 0x301 | |
(Between stack frames 4 and 5, a call to ...::Render::RenderThread::NotifyPaint() | |
through the ...::Render::IRenderThread::NotifyPaint() interface has been inlined.) | |
This happens during Terminal app startup. | |
This is because in TermControl::_InitializeTerminal(), the TermControl | |
creates a RenderThread and passes it to the Renderer. However, the | |
TermControl failed to call RenderThread::Initialize() before passing it | |
to the Renderer, so when TermControl subsequently calls into Renderer, | |
it tries to use an uninitialized RenderThread. | |
The verifier break occurs because the RenderThread has | |
a handle to a Win32 event (_pEvent), the RenderThread is | |
uninitialized so the handle is null, and the wrong null value | |
was used for the HANDLE variable (not 0, but INVALID_HANDLE_VALUE). | |
======================================= | |
VERIFIER STOP 0000000000000305: pid 0x64: Incorrect object type for handle. | |
FFFFFFFFFFFFFFFF : Handle value. ==> INVALID_HANDLE_VALUE | |
0000006E33D0E198 : Object type name. Use du to display it ==> "Process" | |
00007FFE88E46900 : Expected object type name. Use du to display it ==> "Event" | |
0000000000000000 : Not used. | |
partial stack: | |
[0x3] vfbasics!AVrfpNtSetEvent + 0x34 | |
[0x4] KERNELBASE!SetEvent + 0xd | |
[0x5] TerminalControl!Microsoft::Console::Render::Renderer::_NotifyPaintFrame + 0xa | |
[0x6] TerminalControl!Microsoft::Console::Render::Renderer::TriggerRedrawCursor + 0x156 | |
[0x7] TerminalControl!Cursor::_RedrawCursorAlways + 0x24 | |
[0x8] TerminalControl!Cursor::_RedrawCursor + 0x1e | |
[0x9] TerminalControl!Cursor::SetStyle + 0x2f | |
[0xa] TerminalControl!Microsoft::Terminal::Core::Terminal::UpdateSettings + 0x12b | |
[0xb] TerminalControl!Microsoft::Terminal::Core::Terminal::CreateFromSettings + 0x1e7 | |
[0xc] TerminalControl!winrt::Microsoft::Terminal::TerminalControl::implementation::TermControl::_InitializeTerminal + 0x55e | |
Same as the previous stop, also in Terminal app startup. | |
The same problem just repeats itself again because | |
TermControl makes multiple calls into the Renderer | |
after giving that Renderer an uninitialized RenderThread. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment