首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用QEMU和GDB gdb.error调试linux内核

用QEMU和GDB gdb.error调试linux内核
EN

Stack Overflow用户
提问于 2022-09-19 20:08:59
回答 1查看 55关注 0票数 0

我正在尝试调试LinuxKernel5.15.47和我正在构建的内核模块。我正在使用gdb,不幸的是,每次我在gdb中加载vmlinux文件以准备使用qemu进行远程调试时,都会出现以下错误。注意,我也尝试在qemu上使用GDB (所以没有远程调试),错误仍然发生在那里。

我看不出有多少类似的讨论,所以我想我会问是否有人为此有工作?

代码语言:javascript
复制
(gdb) file vmlinux
Reading symbols from vmlinux...
Traceback (most recent call last):
  File "/home/administrator/Kernels/built/linux-5.15.47/vmlinux-gdb.py", line 34, in <module>
    import linux.proc
  File "/home/administrator/Kernels/built/linux-5.15.47/scripts/gdb/linux/proc.py", line 15, in <module>
    from linux import constants
  File "/home/administrator/Kernels/built/linux-5.15.47/scripts/gdb/linux/constants.py", line 10, in <module>
    LX_hrtimer_resolution = gdb.parse_and_eval("hrtimer_resolution")
gdb.error: 'hrtimer_resolution' has unknown type; cast it to its declared type
(gdb) lx-symbols /home/administrator/<module>/src
loading vmlinux
Traceback (most recent call last):
  File "/home/administrator/Kernels/built/linux-5.15.47/vmlinux-gdb.py", line 34, in <module>
    import linux.proc
  File "/home/administrator/Kernels/built/linux-5.15.47/scripts/gdb/linux/proc.py", line 15, in <module>
    from linux import constants
  File "/home/administrator/Kernels/built/linux-5.15.47/scripts/gdb/linux/constants.py", line 10, in <module>
    LX_hrtimer_resolution = gdb.parse_and_eval("hrtimer_resolution")
gdb.error: 'hrtimer_resolution' has unknown type; cast it to its declared type
No source file named kernel/module.c.

kernel/module.c文件确实存在,它正在抱怨这个文件。

EN

回答 1

Stack Overflow用户

发布于 2022-09-20 22:25:04

解决了。

发现了我的问题。通常,gdb应该能够使用在使用以下标志时生成的两个单独的dwo文件。但是,在我的例子中,它似乎只是没有使用我所拥有的gdb版本,或者我可能需要在gdb中执行一个命令。我有正确版本的gdb (任意版本的>=7.2) gcc version 11.2.0 (Ubuntu 11.2.0-19ubuntu1)

CONFIG_DEBUG_INFO_SPLIT将内核和内核模块的调试信息拆分到单独的.dwo文件中。这大大减少了安装在设备或VM上的内核映像和内核模块的大小,我们将进行调试。请注意,此选项需要一个大于或等于4.7版本的gcc版本,因为它向编译器标志中添加了选项-gsplit侏儒。

在您的n文件中将此值设置为.config,然后重新构建内核修复了我遇到的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73778746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档