scripts/gdb: lx-dmesg: read records individually
authorJohn Ogness <john.ogness@linutronix.de>
Wed, 15 Dec 2021 15:10:22 +0000 (16:16 +0106)
committerPetr Mladek <pmladek@suse.com>
Thu, 16 Dec 2021 14:52:38 +0000 (15:52 +0100)
commitdeaee2704a157dfcca77301ddaa10c62a9840952
tree6819bcd9d613ef494328fc414d173412429316ef
parent52e68cd60ddf11802f5135921aba77c0833909a8
scripts/gdb: lx-dmesg: read records individually

For the gdb command lx-dmesg, the entire descriptor, info, and text
data regions are read into memory before printing any records. For
large kernel log buffers, this not only causes a huge delay before
seeing any records, but it may also lead to python errors of too
much memory allocation.

Rather than reading in all these regions in advance, read them as
needed and only read the regions for the particular record that is
being printed.

The gdb macro "dmesg" in Documentation/admin-guide/kdump/gdbmacros.txt
already prints out the kernel log buffer like this.

Signed-off-by: John Ogness <john.ogness@linutronix.de>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/874k79c3a9.fsf@jogness.linutronix.de
scripts/gdb/linux/dmesg.py