Skip to content

[1.12] Opening the debug tap instantly crashes the terminal #11282

@zadjii-msft

Description

@zadjii-msft

WindowsTerminalPreview_1.12.2593.0

Pretty easy repro: hold the alts, and open the first profile in the dropdown. Terminal will instantly take a trip to beeftown.

Stack 1
0:061> K
 # Child-SP          RetAddr               Call Site
00 000000f3`039ae890 00007ffc`91b68e67     Microsoft_Terminal_Control!Cursor::StartDeferDrawing+0x1b [C:\Users\migrie\dev\public\terminal\src\buffer\out\cursor.cpp @ 315] 
01 000000f3`039ae8c0 00007ffc`91b7660b     Microsoft_Terminal_Control!Microsoft::Terminal::Core::Terminal::_WriteBuffer+0x77 [C:\Users\migrie\dev\public\terminal\src\cascadia\TerminalCore\Terminal.cpp @ 920] 
02 000000f3`039aed50 00007ffc`91b7c952     Microsoft_Terminal_Control!Microsoft::Terminal::Core::Terminal::PrintString+0x2b [C:\Users\migrie\dev\public\terminal\src\cascadia\TerminalCore\TerminalApi.cpp @ 17] 
03 000000f3`039aed90 00007ffc`91ba1d4e     Microsoft_Terminal_Control!TerminalDispatch::PrintString+0x72 [C:\Users\migrie\dev\public\terminal\src\cascadia\TerminalCore\TerminalDispatch.cpp @ 34] 
04 000000f3`039aee00 00007ffc`91b9be7a     Microsoft_Terminal_Control!Microsoft::Console::VirtualTerminal::OutputStateMachineEngine::ActionPrintString+0xde [C:\Users\migrie\dev\public\terminal\src\terminal\parser\OutputStateMachineEngine.cpp @ 153] 
05 000000f3`039aee90 00007ffc`91b658b1     Microsoft_Terminal_Control!Microsoft::Console::VirtualTerminal::StateMachine::ProcessString+0x3da [C:\Users\migrie\dev\public\terminal\src\terminal\parser\stateMachine.cpp @ 1910] 
06 000000f3`039af0b0 00007ffc`917e5831     Microsoft_Terminal_Control!Microsoft::Terminal::Core::Terminal::Write+0xc1 [C:\Users\migrie\dev\public\terminal\src\cascadia\TerminalCore\Terminal.cpp @ 428] 
07 000000f3`039af150 00007ffc`917f05de     Microsoft_Terminal_Control!winrt::Microsoft::Terminal::Control::implementation::ControlCore::_connectionOutputHandler+0x81 [C:\Users\migrie\dev\public\terminal\src\cascadia\TerminalControl\ControlCore.cpp @ 1499] 
08 000000f3`039af1d0 00007ffc`9185bc09     Microsoft_Terminal_Control!<lambda_210ea580d46121bf3f2a41b013048df3>::operator()<winrt::hstring const &>+0x6e [C:\Users\migrie\dev\public\terminal\src\cascadia\TerminalControl\Generated Files\winrt\Microsoft.Terminal.TerminalConnection.h @ 471] 
09 000000f3`039af220 00007ffc`92934d38     Microsoft_Terminal_Control!winrt::impl::delegate<winrt::Microsoft::Terminal::TerminalConnection::TerminalOutputHandler,<lambda_210ea580d46121bf3f2a41b013048df3> >::Invoke+0x39 [C:\Users\migrie\dev\public\terminal\src\cascadia\TerminalControl\Generated Files\winrt\Microsoft.Terminal.TerminalConnection.h @ 160] 
0a 000000f3`039af260 00007ffc`9293174a     TerminalApp!winrt::Microsoft::Terminal::TerminalConnection::TerminalOutputHandler::operator()+0x68 [C:\Users\migrie\dev\public\terminal\src\cascadia\TerminalApp\Generated Files\winrt\Microsoft.Terminal.TerminalConnection.h @ 484] 
0b 000000f3`039af2c0 00007ffc`92930248     TerminalApp!winrt::impl::invoke<winrt::Microsoft::Terminal::TerminalConnection::TerminalOutputHandler,std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >+0x3a [C:\Users\migrie\dev\public\terminal\src\cascadia\TerminalApp\Generated Files\winrt\base.h @ 5762] 
0c 000000f3`039af330 00007ffc`9292f377     TerminalApp!winrt::event<winrt::Microsoft::Terminal::TerminalConnection::TerminalOutputHandler>::operator()<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >+0x108 [C:\Users\migrie\dev\public\terminal\src\cascadia\TerminalApp\Generated Files\winrt\base.h @ 5897] 
0d 000000f3`039af3d0 00007ffc`92930136     TerminalApp!winrt::Microsoft::TerminalApp::implementation::DebugTapConnection::_OutputHandler+0x87 [C:\Users\migrie\dev\public\terminal\src\cascadia\TerminalApp\DebugTapConnection.cpp @ 97] 
0e 000000f3`039af480 00007ffc`92935c59     TerminalApp!<lambda_2c25e064670df2bdbd325277065ff5fd>::operator()<winrt::hstring const &>+0x96 [C:\Users\migrie\dev\public\terminal\src\cascadia\TerminalApp\Generated Files\winrt\Microsoft.Terminal.TerminalConnection.h @ 471] 
0f 000000f3`039af4f0 00007ffc`900b4d38     TerminalApp!winrt::impl::delegate<winrt::Microsoft::Terminal::TerminalConnection::TerminalOutputHandler,<lambda_2c25e064670df2bdbd325277065ff5fd> >::Invoke+0x39 [C:\Users\migrie\dev\public\terminal\src\cascadia\TerminalApp\Generated Files\winrt\Microsoft.Terminal.TerminalConnection.h @ 160] 
10 000000f3`039af530 00007ffc`9007d66a     TerminalConnection!winrt::Microsoft::Terminal::TerminalConnection::TerminalOutputHandler::operator()+0x68 [C:\Users\migrie\dev\public\terminal\src\cascadia\TerminalConnection\Generated Files\winrt\Microsoft.Terminal.TerminalConnection.h @ 415] 
11 000000f3`039af590 00007ffc`900598f8     TerminalConnection!winrt::impl::invoke<winrt::Microsoft::Terminal::TerminalConnection::TerminalOutputHandler,std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >+0x3a [C:\Users\migrie\dev\public\terminal\src\cascadia\TerminalConnection\Generated Files\winrt\base.h @ 5762] 
12 000000f3`039af600 00007ffc`90100665     TerminalConnection!winrt::event<winrt::Microsoft::Terminal::TerminalConnection::TerminalOutputHandler>::operator()<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >+0x108 [C:\Users\migrie\dev\public\terminal\src\cascadia\TerminalConnection\Generated Files\winrt\base.h @ 5897] 
13 000000f3`039af6a0 00007ffc`901016d7     TerminalConnection!winrt::Microsoft::Terminal::TerminalConnection::implementation::ConptyConnection::_OutputThread+0x535 [C:\Users\migrie\dev\public\terminal\src\cascadia\TerminalConnection\ConptyConnection.cpp @ 622] 
14 000000f3`039af880 00007ffc`90101722     TerminalConnection!<lambda_223e35fa14b6c169171518cd8f8b0eba>::operator()+0x37 [C:\Users\migrie\dev\public\terminal\src\cascadia\TerminalConnection\ConptyConnection.cpp @ 387] 
15 000000f3`039af8c0 00007ffd`48cb6d50     TerminalConnection!<lambda_223e35fa14b6c169171518cd8f8b0eba>::<lambda_invoker_cdecl>+0x22 [C:\Users\migrie\dev\public\terminal\src\cascadia\TerminalConnection\ConptyConnection.cpp @ 390] 
16 000000f3`039af8f0 00007ffd`49864c6b     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
17 000000f3`039af920 00000000`00000000     ntdll!RtlUserThreadStart+0x2b
ANOTHER stack
0:062> k
 # Child-SP          RetAddr               Call Site
00 0000009a`5b49f440 00007ffd`1caa12c9     Microsoft_Terminal_Control!Microsoft::Terminal::Core::Terminal::_WriteBuffer+0x5e [C:\a\_work\1\s\src\cascadia\TerminalCore\Terminal.cpp @ 918] 
01 0000009a`5b49f780 00007ffd`1cab6733     Microsoft_Terminal_Control!Microsoft::Terminal::Core::Terminal::PrintString+0x9 [C:\a\_work\1\s\src\cascadia\TerminalCore\TerminalApi.cpp @ 17] 
02 0000009a`5b49f7b0 00007ffd`1cab6693     Microsoft_Terminal_Control!TerminalDispatch::PrintString+0x23 [C:\a\_work\1\s\src\cascadia\TerminalCore\TerminalDispatch.cpp @ 34] 
03 0000009a`5b49f7f0 00007ffd`1ca9bc33     Microsoft_Terminal_Control!Microsoft::Console::VirtualTerminal::OutputStateMachineEngine::ActionPrintString+0x43 [C:\a\_work\1\s\src\terminal\parser\OutputStateMachineEngine.cpp @ 154] 
04 0000009a`5b49f830 00007ffd`1ca9b867     Microsoft_Terminal_Control!Microsoft::Console::VirtualTerminal::StateMachine::ProcessString+0x203 [C:\a\_work\1\s\src\terminal\parser\stateMachine.cpp @ 1910] 
05 0000009a`5b49f960 00007ffd`1ca9b803     Microsoft_Terminal_Control!Microsoft::Terminal::Core::Terminal::Write+0x53 [C:\a\_work\1\s\src\cascadia\TerminalCore\Terminal.cpp @ 428] 
06 0000009a`5b49f9c0 00007ffd`1cac3a72     Microsoft_Terminal_Control!winrt::Microsoft::Terminal::Control::implementation::ControlCore::_connectionOutputHandler+0x33 [C:\a\_work\1\s\src\cascadia\TerminalControl\ControlCore.cpp @ 1475] 
07 (Inline Function) --------`--------     Microsoft_Terminal_Control!winrt::Microsoft::Terminal::TerminalConnection::TerminalOutputHandler::<lambda_210ea580d46121bf3f2a41b013048df3>::operator()+0x17 [C:\a\_work\1\s\src\cascadia\TerminalControl\Generated Files\winrt\Microsoft.Terminal.TerminalConnection.h @ 471] 
08 0000009a`5b49fa10 00007ffc`dec3256b     Microsoft_Terminal_Control!winrt::impl::delegate<winrt::Microsoft::Terminal::TerminalConnection::TerminalOutputHandler,<lambda_210ea580d46121bf3f2a41b013048df3> >::Invoke+0x32 [C:\a\_work\1\s\src\cascadia\TerminalControl\Generated Files\winrt\Microsoft.Terminal.TerminalConnection.h @ 160] 
09 0000009a`5b49fa60 00007ffc`dec93f80     TerminalApp!winrt::TerminalApp::TitleChangeRequestedArgs::operator()+0x17 [C:\a\_work\1\s\src\cascadia\TerminalApp\Generated Files\winrt\TerminalApp.h @ 5265] 
0a 0000009a`5b49fa90 00007ffc`dec93d43     TerminalApp!winrt::impl::invoke<winrt::Microsoft::Terminal::TerminalConnection::TerminalOutputHandler,std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >+0x20 [C:\a\_work\1\s\src\cascadia\TerminalApp\Generated Files\winrt\base.h @ 5762] 
0b 0000009a`5b49fae0 00007ffc`dec95417     TerminalApp!winrt::event<winrt::Microsoft::Terminal::TerminalConnection::TerminalOutputHandler>::operator()<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >+0x83 [C:\a\_work\1\s\src\cascadia\TerminalApp\Generated Files\winrt\base.h @ 5897] 
0c 0000009a`5b49fb20 00007ffc`dec94d38     TerminalApp!winrt::Microsoft::TerminalApp::implementation::DebugTapConnection::_OutputHandler+0x47 [C:\a\_work\1\s\src\cascadia\TerminalApp\DebugTapConnection.cpp @ 97] 
0d (Inline Function) --------`--------     TerminalApp!winrt::Microsoft::Terminal::TerminalConnection::TerminalOutputHandler::<lambda_2c25e064670df2bdbd325277065ff5fd>::operator()+0x4b [C:\a\_work\1\s\src\cascadia\TerminalApp\Generated Files\winrt\Microsoft.Terminal.TerminalConnection.h @ 471] 
0e 0000009a`5b49fb90 00007ffd`241a4df5     TerminalApp!winrt::impl::delegate<winrt::Microsoft::Terminal::TerminalConnection::TerminalOutputHandler,<lambda_2c25e064670df2bdbd325277065ff5fd> >::Invoke+0x58 [C:\a\_work\1\s\src\cascadia\TerminalApp\Generated Files\winrt\Microsoft.Terminal.TerminalConnection.h @ 160] 
0f (Inline Function) --------`--------     TerminalConnection!winrt::Microsoft::Terminal::TerminalConnection::TerminalOutputHandler::operator()+0x15 [C:\a\_work\1\s\src\cascadia\TerminalConnection\Generated Files\winrt\Microsoft.Terminal.TerminalConnection.h @ 415] 
10 0000009a`5b49fbd0 00007ffd`241a4d12     TerminalConnection!winrt::impl::invoke<winrt::Microsoft::Terminal::TerminalConnection::TerminalOutputHandler,std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >+0x55 [C:\a\_work\1\s\src\cascadia\TerminalConnection\Generated Files\winrt\base.h @ 5762] 
11 (Inline Function) --------`--------     TerminalConnection!winrt::event<winrt::Microsoft::Terminal::TerminalConnection::TerminalOutputHandler>::operator()+0x5a [C:\a\_work\1\s\src\cascadia\TerminalConnection\Generated Files\winrt\base.h @ 5897] 
12 0000009a`5b49fc30 00007ffd`241a92c2     TerminalConnection!winrt::Microsoft::Terminal::TerminalConnection::implementation::ConptyConnection::_OutputThread+0x152 [C:\a\_work\1\s\src\cascadia\TerminalConnection\ConptyConnection.cpp @ 621] 
13 (Inline Function) --------`--------     TerminalConnection!winrt::Microsoft::Terminal::TerminalConnection::implementation::ConptyConnection::Start::__l3::<lambda_223e35fa14b6c169171518cd8f8b0eba>::operator()+0xe [C:\a\_work\1\s\src\cascadia\TerminalConnection\ConptyConnection.cpp @ 387] 
14 0000009a`5b49fcf0 00007ffd`48cb6d50     TerminalConnection!<lambda_223e35fa14b6c169171518cd8f8b0eba>::<lambda_invoker_cdecl>+0x12 [C:\a\_work\1\s\src\cascadia\TerminalConnection\ConptyConnection.cpp @ 390] 
15 0000009a`5b49fd20 00007ffd`49864c6b     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
16 0000009a`5b49fd50 00000000`00000000     ntdll!RtlUserThreadStart+0x2b [minkernel\ntdll\rtlstrt.c @ 1152] 

Looks like the Terminal is started before we are initialized. In both stacks, the Terminal _buffer isn't initialized yet.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area-TerminalControlIssues pertaining to the terminal control (input, selection, keybindings, mouse interaction, etc.)Issue-BugIt either shouldn't be doing this or needs an investigation.Needs-Tag-FixDoesn't match tag requirementsPriority-1A description (P1)Product-TerminalThe new Windows Terminal.Resolution-Fix-CommittedFix is checked in, but it might be 3-4 weeks until a release.Severity-CrashCrashes are real bad news.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions