History

scripts/gdb: mm: cast untyped symbols in x86_page_ops

The symbols phys_base, _text, and _end, used in x86_page_ops are either defined in assembly or implicitly by the linker. Thus, they lack type information and cause a conversion error after gdb.parse_and_eval. Explicitly cast these expressions to unsigned long.

Illia Ostapyshyn committed 6 months ago

Commit c416aee1 parent 620072f1 file · +3 −3Browse files

Unified · Split

scripts/gdb/linux/mm.py+3−3
@@ -40,11 +40,11 @@ class x86_page_ops(): · 39 unmodified lines
4040
4141 self.PAGE_OFFSET = int(gdb.parse_and_eval("page_offset_base"))
4242 self.VMEMMAP_START = int(gdb.parse_and_eval("vmemmap_base"))
43− self.PHYS_BASE = int(gdb.parse_and_eval("phys_base"))
43+ self.PHYS_BASE = int(gdb.parse_and_eval("(unsigned long) phys_base"))
4444 self.START_KERNEL_map = 0xffffffff80000000
4545
46− self.KERNEL_START = gdb.parse_and_eval("_text")
47− self.KERNEL_END = gdb.parse_and_eval("_end")
46+ self.KERNEL_START = gdb.parse_and_eval("(unsigned long) &_text")
47+ self.KERNEL_END = gdb.parse_and_eval("(unsigned long) &_end")
4848
4949 self.VMALLOC_START = int(gdb.parse_and_eval("vmalloc_base"))
5050 if self.VMALLOC_START == 0xffffc90000000000: