This revision was automatically updated to reflect the committed changes. Closed by commit rGbe18df3d23fe: [lldb] Fix that SIGWINCH crashes IOHandlerEditline when we are not using theā¦ (authored by teemperor). Herald added a project: LLDB. Herald added a subscriber: lldb-commits.
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D81729/new/ https://reviews.llvm.org/D81729 Files: lldb/source/Core/IOHandler.cpp lldb/test/API/iohandler/resize/TestIOHandlerResizeNoEditline.py Index: lldb/test/API/iohandler/resize/TestIOHandlerResizeNoEditline.py =================================================================== --- /dev/null +++ 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) Index: lldb/source/Core/IOHandler.cpp =================================================================== --- lldb/source/Core/IOHandler.cpp +++ 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 }
Index: lldb/test/API/iohandler/resize/TestIOHandlerResizeNoEditline.py =================================================================== --- /dev/null +++ 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) Index: lldb/source/Core/IOHandler.cpp =================================================================== --- lldb/source/Core/IOHandler.cpp +++ 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 }
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits