作者
背景
开发过程中,有时需要读取内核中某个变量的值,比如我想获取下面这个变量的内容:
const char linux_banner[] =
"Linux version " UTS_RELEASE " (" LINUX_COMPILE_BY "@"
LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n";
这个变量其实是/proc/version的内容:
# cat /proc/version
Linux version 6.2.0+ (pengdl@ubuntu) (gcc (Ubuntu 8.4.0-3ubuntu2) 8.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #3 SMP PREEMPT_DYNAMIC Sun Aug 6 20:50:53 PDT 2023
下面我们通过几种办法从内存里得到其内容。
方法
使用gdb
# gdb /mnt/linux-6.2/vmlinux /proc/kc