HomePhabricator

[lldb/Driver] Support terminal resizing
7d80113cff5bUnpublished

Authored by friss on May 8 2020, 3:14 PM.

Unpublished Commit ยท Learn More

Not On Permanent Ref: This commit is not an ancestor of any permanent ref.

Description

[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

(cherry picked from commit d9166ad272847e246799afbb5e0c71874f83aa12)

Details

Committed
frissMay 12 2020, 2:52 PM
Differential Revision
D79654: [lldb/Driver] Support terminal resizing
Parents
rGfc78685df053: Merge pull request #1214 from jasonmolenda/eng/PR-62873581
Branches
Unknown
Tags
Unknown