diff --git a/lldb/source/Core/IOHandler.cpp b/lldb/source/Core/IOHandler.cpp --- a/lldb/source/Core/IOHandler.cpp +++ b/lldb/source/Core/IOHandler.cpp @@ -291,7 +291,8 @@ void IOHandlerEditline::TerminalSizeChanged() { #if LLDB_ENABLE_LIBEDIT - m_editline_up->TerminalSizeChanged(); + if (m_editline_up) + m_editline_up->TerminalSizeChanged(); #endif } diff --git a/lldb/test/API/iohandler/resize/TestIOHandlerResizeNoEditline.py b/lldb/test/API/iohandler/resize/TestIOHandlerResizeNoEditline.py new file mode 100644 --- /dev/null +++ b/lldb/test/API/iohandler/resize/TestIOHandlerResizeNoEditline.py @@ -0,0 +1,21 @@ +import lldb +from lldbsuite.test.decorators import * +from lldbsuite.test.lldbtest import * +from lldbsuite.test import lldbutil + +class TestCase(TestBase): + + mydir = TestBase.compute_mydir(__file__) + + @no_debug_info_test + def test_resize_no_editline(self): + """ Tests terminal resizing if the editline isn't used. """ + dbg = lldb.SBDebugger.Create(False) + # Set the input handle to some stream so that we don't start the + # editline interface. + dbg.SetInputFileHandle(io.BytesIO(b""), True) + opts = lldb.SBCommandInterpreterRunOptions() + # Launch the command interpreter now. + dbg.RunCommandInterpreter(True, True, opts, 0, False, False) + # Try resizing the terminal which shouldn't crash. + dbg.SetTerminalWidth(47)