gpt4 book ai didi

c - 如何调试Linux内核的特定代码?

转载 作者:行者123 更新时间:2023-11-30 15:42:13 25 4
gpt4 key购买 nike

虽然有时您想知道内核的特定代码如何工作,但最好的方法是通过包含特定的头文件来编写测试代码,例如,我想知道内核的kfifo如何工作,我首先需要包括 <linux/kfifo.h>

但这对我不起作用,仅包含 <linux/kfifo.h> ,我们必须告诉GCC头文件搜索路径,一些预定义的宏,如__KERNEL__等等,之前是否有任何示例项目这样做过?或者你可以告诉我如何调试这些代码,而无需将这些代码复制出来并删除一些无用的功能。

最佳答案

调试内核基础设施代码(基本上,不包括设备驱动程序的所有内容)的最直接方法是为 uml 架构编译内核(make config ARCH=um 以及之后的常用内容;确保在构建中保留调试符号)。然后你可以使用你最喜欢的用户空间调试器来运行和分析获得的uml内核(因为它是一个普通的linux可执行文件)。

http://lxr.linux.no/#linux+v3.12.1/Documentation/virtual/uml/UserModeLinux-HOWTO.txt

顺便说一下,链接的操作方法已经严重过时了 - 您不需要下载和修补任何内容; UML 多年来一直是内核的一部分。但它会帮助您入门,特别是如果您通过谷歌搜索一下以获取更多详细信息。

关于c - 如何调试Linux内核的特定代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20257451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com