mirror of
https://github.com/torvalds/linux.git
synced 2026-01-25 15:03:52 +08:00
scripts/gdb/symbols: factor out pagination_off()
Move the code that turns off pagination into a separate function. It will be useful later in order to prevent hangs when loading symbols for kernel image in physical memory during s390 early boot. Link: https://lkml.kernel.org/r/20250515155811.114392-3-iii@linux.ibm.com Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Cc: Alexander Gordeev <agordeev@linux.ibm.com> Cc: Heiko Carstens <hca@linux.ibm.com> Cc: Jan Kiszka <jan.kiszka@siemens.com> Cc: Kieran Bingham <kbingham@kernel.org> Cc: Vasily Gorbik <gor@linux.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
committed by
Andrew Morton
parent
3545414f25
commit
e97c4a27cb
@@ -38,19 +38,13 @@ if hasattr(gdb, 'Breakpoint'):
|
||||
# Disable pagination while reporting symbol (re-)loading.
|
||||
# The console input is blocked in this context so that we would
|
||||
# get stuck waiting for the user to acknowledge paged output.
|
||||
show_pagination = gdb.execute("show pagination", to_string=True)
|
||||
pagination = show_pagination.endswith("on.\n")
|
||||
gdb.execute("set pagination off")
|
||||
|
||||
if module_name in cmd.loaded_modules:
|
||||
gdb.write("refreshing all symbols to reload module "
|
||||
"'{0}'\n".format(module_name))
|
||||
cmd.load_all_symbols()
|
||||
else:
|
||||
cmd.load_module_symbols(module)
|
||||
|
||||
# restore pagination state
|
||||
gdb.execute("set pagination %s" % ("on" if pagination else "off"))
|
||||
with utils.pagination_off():
|
||||
if module_name in cmd.loaded_modules:
|
||||
gdb.write("refreshing all symbols to reload module "
|
||||
"'{0}'\n".format(module_name))
|
||||
cmd.load_all_symbols()
|
||||
else:
|
||||
cmd.load_module_symbols(module)
|
||||
|
||||
return False
|
||||
|
||||
|
||||
@@ -260,3 +260,14 @@ def get_vmlinux():
|
||||
obj.filename.endswith('vmlinux.debug')):
|
||||
vmlinux = obj.filename
|
||||
return vmlinux
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
def pagination_off():
|
||||
show_pagination = gdb.execute("show pagination", to_string=True)
|
||||
pagination = show_pagination.endswith("on.\n")
|
||||
gdb.execute("set pagination off")
|
||||
try:
|
||||
yield
|
||||
finally:
|
||||
gdb.execute("set pagination %s" % ("on" if pagination else "off"))
|
||||
|
||||
Reference in New Issue
Block a user