linux-kernel – 可加载内核模块的Debug-info

前端之家收集整理的这篇文章主要介绍了linux-kernel – 可加载内核模块的Debug-info前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何为可加载的 Linux内核模块(比如vmlinux-uname -r.debug中的内核模块)构建调试信息?是否在我们构建模块时生成它,如果是这样的话它将位于何处?

解决方法

假设您使用CONFIG_DEBUG_INFO构建了内核,则调试符号应该已经存在于相关模块的.ko文件中.但是,由于模块可以在任何地址动态加载,因此需要为gdb提供更多信息.
cd /sys/module/${MODNAME}/sections
cat .text .data .bss

然后,在向GDB讲述模块时,您可以使用此信息:

(gdb) add-symbol-file ${MODPATH} ${TEXT} -s .data ${DATA} -s .bss ${BSS}

有一个教程可以在Linux Foundation网站上引导您完成此操作. Kernel and Module Debugging with GDB

猜你在找的Linux相关文章