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

Closed
opened 2026-01-31 04:33:42 +00:00 by claunia · 4 comments
Owner

Originally created by @zadjii-msft on GitHub (Sep 20, 2021).

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.

Originally created by @zadjii-msft on GitHub (Sep 20, 2021). 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. <details> <summary>Stack 1</summary> ``` 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 ``` </details> <details> <summary>ANOTHER stack</summary> ``` 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] ``` </details> Looks like the Terminal is started before we are initialized. In both stacks, the `Terminal` `_buffer` isn't initialized yet.
Author
Owner

@DHowett commented on GitHub (Sep 20, 2021):

Looks like another instance of "terminal connections that produce output too quickly cause us to beef it", possibly related to recent initialization order changes!

@DHowett commented on GitHub (Sep 20, 2021): Looks like another instance of "terminal connections that produce output too quickly cause us to beef it", possibly related to recent initialization order changes!
Author
Owner

@Rosefield commented on GitHub (Sep 20, 2021):

I was working on https://github.com/microsoft/terminal/issues/11021 and was going crazy that with a refactor things crashed trying to open a debug tab. I guess I was just sufficiently unlucky that it worked when I had the old code checked out and didn't work when I was trying to test mine.

@Rosefield commented on GitHub (Sep 20, 2021): I was working on https://github.com/microsoft/terminal/issues/11021 and was going crazy that with a refactor things crashed trying to open a debug tab. I guess I was just sufficiently unlucky that it worked when I had the old code checked out and didn't work when I was trying to test mine.
Author
Owner

@zadjii-msft commented on GitHub (Oct 6, 2021):

Hmm. When this works, DebugTapConnection::Start is called, then DebugInputTapConnection::Start. When this doesn't work, only the Input one is called.

@zadjii-msft commented on GitHub (Oct 6, 2021): Hmm. When this works, `DebugTapConnection::Start` is called, _then_ `DebugInputTapConnection::Start`. When this doesn't work, only the Input one is called.
Author
Owner

@ghost commented on GitHub (Oct 20, 2021):

:tada:This issue was addressed in #11445, which has now been successfully released as Windows Terminal Preview v1.12.2922.0.🎉

Handy links:

@ghost commented on GitHub (Oct 20, 2021): :tada:This issue was addressed in #11445, which has now been successfully released as `Windows Terminal Preview v1.12.2922.0`.:tada: Handy links: * [Release Notes](https://github.com/microsoft/terminal/releases/tag/v1.12.2922.0) * [Store Download](https://www.microsoft.com/store/apps/9n8g5rfz9xk3?cid=storebadge&ocid=badge)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#15284