![Linux 内核中的调试信息 - 它是如何工作的?](https://linux22.com/image/60823/Linux%20%E5%86%85%E6%A0%B8%E4%B8%AD%E7%9A%84%E8%B0%83%E8%AF%95%E4%BF%A1%E6%81%AF%20-%20%E5%AE%83%E6%98%AF%E5%A6%82%E4%BD%95%E5%B7%A5%E4%BD%9C%E7%9A%84%EF%BC%9F.png)
我发现我可以使用一些添加调试支持(如 CONFIG_DEBUG_INFO)的标志来编译 Linux 内核。这些选项虽然在调试中很有用,但某些实用程序(例如 SystemTap)也需要这些选项。
我使用 SystemTap 是因为它允许我从整个系统获取所有系统调用(并且不会像使用 strace 跟踪所有进程那样挂起它)。
我想知道如何从内核读取这些信息(以不会造成如此大开销的方式)。
答案1
CONFIG_DEBUG_INFO
是关于使用调试符号(用于 gdb 或其他调试器)构建内核。它们与内核本身分开存储在磁盘上,并且不会从正在运行的内核副本中读取。