mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-11 17:10:13 +00:00
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 28939c3e9925 ("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: 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:
parent
85915c6cab
commit
3545414f25
@ -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:
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user