我正在尝试使用SystemTap破解内核,linux-4.13.4。
我按照这个post安装它,我陷入了
从哪里获取内核X的调试符号? http://ddebs.ubuntu.com/pool/main/l/linux/
但是,由于我使用的是已编译的内核版本4.13.4
,因此linux-4.13.4
没有相应的版本。
我想按照说明进行操作
如果一个debuginfo内核不可用,我如何构建它?
Getting the sources and compiling the kernel on Ubuntu.
$ cd $HOME
$ sudo apt-get install dpkg-dev debhelper gawk
$ mkdir tmp
$ cd tmp
$ sudo apt-get build-dep --no-install-recommends linux-image-$(uname -r)
$ apt-get source linux-image-$(uname -r)
$ cd linux-2.6.31 (this is currently the kernel version of 9.10)
$ fakeroot debian/rules clean
$ AUTOBUILD=1 fakeroot debian/rules binary-generic skipdbg=false
$ sudo dpkg -i ../linux-image-debug-2.6.31-19-generic_2.6.31-19.56_amd64.ddeb
但是,当我sudo apt-get build-dep --no-install-recommends linux-image-$(uname -r)
ERROR:
Reading package lists... Done
E: Unable to find a source package for linux-image-4.13.4
我担心调试符号,因为我将在kernel-4.13.4中添加一些代码。如果我使用http://ddebs.ubuntu.com/pool/main/l/linux/中的版本4.13.0
,如果我在4.13.3
中添加代码但4.13.0
之后的代码不可用,因为版本不同且无法找到符号,该怎么办?
即使我修改4.13.0
中的代码,我在http://ddebs.ubuntu.com/pool/main/l/linux/中使用linux-4.13.4
是否重要?
如果确实重要,我该如何消除问题并生成linux-4.13.4
的自定义dbgsym版本?
参考:
https://sourceware.org/systemtap/wiki/SystemtapOnUbuntu