Address translation loops when doing arm64 dump analysis
$drgn -c vmcore -s vmlinux
drgn 0.0.32+70.gb1cf7b67 (using Python 3.12.3, elfutils 0.190, without debuginfod (dlopen), without libkdumpfile, with lzma)
warning: can't find kernel modules: couldn't read modules list: recursive address translation; page table may be missing from core dump: 0xffffffd4d71b1a98
For help, type help(drgn).
>>> import drgn
>>> from drgn import FaultError, NULL, Object, alignof, cast, container_of, execscript, implicit_convert, offsetof, reinterpret, sizeof, stack_trace
>>> from drgn.helpers.common import *
>>> from drgn.helpers.linux import *
>>> print_dmesg();
Traceback (most recent call last):
File "/usr/lib/python3.12/code.py", line 90, in runcode
exec(code, self.locals)
File "<console>", line 1, in <module>
File "/usr/local/lib/python3.12/dist-packages/drgn-0.0.32+70.gb1cf7b67-py3.12-linux-x86_64.egg/drgn/helpers/common/prog.py", line 105, in wrapper
return f(get_default_prog(), *args, **kwds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/dist-packages/drgn-0.0.32+70.gb1cf7b67-py3.12-linux-x86_64.egg/drgn/helpers/linux/printk.py", line 337, in print_dmesg
get_dmesg(prog, timestamps=timestamps).decode(errors="replace")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/dist-packages/drgn-0.0.32+70.gb1cf7b67-py3.12-linux-x86_64.egg/drgn/helpers/common/prog.py", line 103, in wrapper
return f(*args, **kwds)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/dist-packages/drgn-0.0.32+70.gb1cf7b67-py3.12-linux-x86_64.egg/drgn/helpers/linux/printk.py", line 312, in get_dmesg
lines = [format(record) for record in get_printk_records(prog)]
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/dist-packages/drgn-0.0.32+70.gb1cf7b67-py3.12-linux-x86_64.egg/drgn/helpers/common/prog.py", line 103, in wrapper
return f(*args, **kwds)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/dist-packages/drgn-0.0.32+70.gb1cf7b67-py3.12-linux-x86_64.egg/drgn/helpers/linux/printk.py", line 255, in get_printk_records
return _get_printk_records_lockless(prog, prb)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/dist-packages/drgn-0.0.32+70.gb1cf7b67-py3.12-linux-x86_64.egg/drgn/helpers/linux/printk.py", line 114, in _get_printk_records_lockless
desc_ring = prb.desc_ring
^^^^^^^^^^^^^
_drgn.FaultError: recursive address translation; page table may be missing from core dump: 0xffffffd4d71b1a98
crash utility can transfer this address:
crash> vtop 0xffffffd4d71b1a98
VIRTUAL PHYSICAL
ffffffd4d71b1a98 41fb1a98
PAGE DIRECTORY: ffffffd4d71b1000
PGD: ffffffd4d71b1a98 => 10000000af7ff003
PMD: ffffff806f7ff5c0 => 10000000af7fc003
PTE: ffffff806f7fcd88 => 60000041fb1f83
PAGE: 41fb1000
关闭于 2026-01-28 7 条评论