Some symbols on the imx6 kernel I'm playing with are located very far in the memory:
# cat /proc/kallsyms | grep -v '\[' | tail
c157c5a8 B uevent_helper
c157c6a8 b backtrace_flag
c157c6ac B radix_tree_node_cachep
ffff1004 t vector_rst
ffff1020 t vector_irq
ffff10a0 t vector_dabt
ffff1120 t vector_pabt
ffff11a0 t vector_und
ffff1220 t vector_addrexcptn
ffff1240 T vector_fiq
The symbols location is stored as an offset from the first symbol (located at 0xc0008000), so for instance, the offset for vector_rst is 0x3ffe9004. But the "vmlinux.py" script expects the symbols offset to be below 0x08000000, so the offsets lookup ends at radix_tree_node_cachep and the script fails afterwards when trying to extract the offsets base and the number of symbols, because the real end of the symbols array has not been found.
I fixed it by removing the check against 0x08000000, but maybe there is a better solution.
Some symbols on the imx6 kernel I'm playing with are located very far in the memory:
The symbols location is stored as an offset from the first symbol (located at 0xc0008000), so for instance, the offset for
vector_rstis 0x3ffe9004. But the "vmlinux.py" script expects the symbols offset to be below 0x08000000, so the offsets lookup ends atradix_tree_node_cachepand the script fails afterwards when trying to extract the offsets base and the number of symbols, because the real end of the symbols array has not been found.I fixed it by removing the check against 0x08000000, but maybe there is a better solution.