Commit 3545414f authored by Ilya Leoshkevich's avatar Ilya Leoshkevich Committed by Andrew Morton
Browse files

scripts/gdb/symbols: factor out get_vmlinux()

Patch series "scripts/gdb/symbols: determine KASLR offset on s390 during
early boot".

I noticed that debugging s390 early boot using the support I introduced in
commit 28939c3e ("scripts/gdb/symbols: determine KASLR offset on
s390") does not work.

The reason is that decompressor does not provide the vmcoreinfo note, so
KASLR offset needs to be extracted in a different way, which this series
implements.  Patches 1-2 are trivial refactorings, and patch 3 is the
implementation.


This patch (of 3):

Move the code that determines the current vmlinux file into a separate
function.  It will be useful later in order to analyze the kernel image in
physical memory during s390 early boot.

Link: https://lkml.kernel.org/r/20250515155811.114392-1-iii@linux.ibm.com
Link: https://lkml.kernel.org/r/20250515155811.114392-2-iii@linux.ibm.com


Signed-off-by: default avatarIlya 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: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 85915c6c
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -178,11 +178,7 @@ lx-symbols command."""
                saved_states.append({'breakpoint': bp, 'enabled': bp.enabled})

        # drop all current symbols and reload vmlinux
        orig_vmlinux = 'vmlinux'
        for obj in gdb.objfiles():
            if (obj.filename.endswith('vmlinux') or
                obj.filename.endswith('vmlinux.debug')):
                orig_vmlinux = obj.filename
        orig_vmlinux = utils.get_vmlinux()
        gdb.execute("symbol-file", to_string=True)
        kerneloffset = get_kerneloffset()
        if kerneloffset is None:
+9 −0
Original line number Diff line number Diff line
@@ -251,3 +251,12 @@ def parse_vmcore(s):
    else:
        kerneloffset = int(match.group(1), 16)
    return VmCore(kerneloffset=kerneloffset)


def get_vmlinux():
    vmlinux = 'vmlinux'
    for obj in gdb.objfiles():
        if (obj.filename.endswith('vmlinux') or
            obj.filename.endswith('vmlinux.debug')):
            vmlinux = obj.filename
    return vmlinux