[lldb] Fix help/pydoc output when the statusline is enabled (#169101)

Using Python's built-in help shows an empty screen when the statusline
is enabled. The issue is the pydoc pager (e.g. less) which doesn't play
nice with the statusline. Use the "plain" pager instead.

I considered making this conditional on the statusline, but to do that
right you would need to register a callback that toggles it every time
the setting changes and that doesn't seem worth the complexity.

Fixes #166610
This commit is contained in:
Jonas Devlieghere
2026-04-30 13:59:15 -07:00
committed by GitHub
parent f863470262
commit 28a4ad535f

View File

@@ -426,6 +426,14 @@ ScriptInterpreterPythonImpl::ScriptInterpreterPythonImpl(Debugger &debugger)
RunSimpleString(run_string.GetData());
run_string.Clear();
// Configure pydoc (built-in module) to use the "plain" pager. The default one
// doesn't play nice with the statusline.
run_string.Printf("run_one_line (%s, 'import pydoc; pydoc.pager = "
"pydoc.plainpager')",
m_dictionary_name.c_str());
RunSimpleString(run_string.GetData());
run_string.Clear();
run_string.Printf("run_one_line (%s, 'lldb.debugger_unique_id = %" PRIu64
"')",
m_dictionary_name.c_str(), m_debugger.GetID());