hel*_*lwq 15 bash kernel linux-kernel
我想从vmlinuz生成System.map,因为大多数机器没有文件System.map.实际上,vmlinuz被压缩为vmlinuz或bzImage.
这是任何工具或脚本可以做到这一点?
我试过了:
dd if=/boot/vmlinuz skip=`grep -a -b -o -m 1 -e $'\x1f\x8b\x08\x00' /boot/vmlinuz | cut -d: -f 1` bs=1 | zcat > /tmp/vmlinux
Run Code Online (Sandbox Code Playgroud)
它失败了:
zcat: stdin: not in gzip format
32769+0 records in
32768+0 records out
Run Code Online (Sandbox Code Playgroud)
Abr*_*as2 17
要从内核映像中提取未压缩的内核,您可以使用内核树中extract-vmlinux的scripts目录中的脚本(至少在内核版本3.5中可用)(如果您收到类似的错误)
mktemp:无法创建临时文件/ tmp/vmlinux-XXX:参数无效
您需要更换$(mktemp /tmp/vmlinux-XXX)的$(mktemp /tmp/vmlinux-XXXXXX)脚本).命令是/path/to/kernel/tree/scripts/extract-vmlinux <kernel image> >vmlinux.
如果提取的内核二进制文件包含符号信息,则应该能够System.map使用mksysmap同一子目录中的脚本创建文件.这里的命令是NM=nm /path/to/kernel/tree/scripts/mksysmap vmlinux System.map.
¹我的发行版附带的内核映像似乎被剥离,因此脚本无法获取符号.
| 归档时间: |
|
| 查看次数: |
26214 次 |
| 最近记录: |