llvm-project/lldb/include/lldb
Fred Riss d9166ad272 [lldb/Driver] Support terminal resizing
Summary:
The comment in the Editine.h header made it sound like editline was
just unable to handle terminal resizing. We were not ever telling
editline that the terminal had changed size, which might explain why
it wasn't working.

This patch threads a `TerminalSizeChanged()` callback through the
IOHandler and invokes it from the SIGWINCH handler in the driver. Our
`Editline` class already had a `TerminalSizeChanged()` method which
was invoked only when editline was configured.

This patch also changes `Editline` to not apply the changes right away
in `TerminalSizeChanged()`, but instead defer that to the next
character read. During my testing, it happened once that the signal
was received while our `ConnectionFileDescriptor::Read` was allocating
memory. As `el_resize` seems to allocate memory too, this crashed.

Reviewers: labath, teemperor

Subscribers: lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D79654
2020-05-12 11:55:25 -07:00
..
API [lldb/API] Add SBCommandInterpreterRunResult 2020-05-01 13:55:38 -07:00
Breakpoint [lldb] Make BreakpointResolver hold weak_ptr instead of raw pointer to breakpoint 2020-03-04 16:56:50 +03:00
Core [lldb/Driver] Support terminal resizing 2020-05-12 11:55:25 -07:00
DataFormatters [lldb/DataFormatters] Delete GetStringPrinterEscapingHelper 2020-05-04 14:06:55 -07:00
Expression [lldb/Expression] Make Language() const, NFC 2020-05-04 14:42:01 -07:00
Host [lldb/Driver] Support terminal resizing 2020-05-12 11:55:25 -07:00
Initialization [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
Interpreter Complete breakpoint enable/disable/delete/modify with a list of breakpoint IDs 2020-05-11 15:21:51 +02:00
Symbol Add an explicit API to read the Xcode SDK DWARF attribute from compile units 2020-05-06 13:16:16 -07:00
Target Move the Xcode SDK path caching to HostInfo 2020-05-06 13:43:50 -07:00
Utility [Reproducers] Serialize process arguments in ProcessInfo 2020-05-12 11:12:37 -07:00
lldb-defines.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
lldb-enumerations.h [lldb/CommandInterpreter] Add CommandInterpreterRunResult (NFC) 2020-05-01 11:29:28 -07:00
lldb-forward.h Create basic SBEnvironment class 2020-03-23 19:23:33 -07:00
lldb-private-defines.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
lldb-private-enumerations.h [lldb][NFC] Remove FormatterChoiceCriterion 2020-04-15 09:47:15 +02:00
lldb-private-forward.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
lldb-private-interfaces.h [lldb] Move ArchitectureCreateInstance into ldb-private-interfaces 2020-02-18 20:19:54 -08:00
lldb-private-types.h [lldb][NFC] Documention that OptionDefinition::completion_type contains enum values 2020-02-18 10:33:38 +01:00
lldb-private.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
lldb-public.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
lldb-types.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
lldb-versioning.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
module.modulemap [lldb/Host] Remove TaskPool and replace its uses with llvm::ThreadPool 2020-04-22 09:17:49 -07:00