gpt4 book ai didi

c - 启用从用户空间进程调试内核模块

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

我正在 ubuntu 14.04 服务器上使用 openvswitch。我可以轻松地将 gdb 与其任何二进制文件附加在一起,以调试其各种功能,但是当涉及到其内核模块时,我无法根据我的要求对其进行调试。我正在使用以下步骤将 Linux 内核附加到 gdb:1. gdb/tmp/vmlinux/proc/kcore2.向GDB添加符号文件: cd/sys/module/openvswitch/sections/ ls-A1 .cat .文本 .数据 .bss3. 在 gdb 中 - 添加符号文件 datapath/linux/openvswitch.ko 0xf87a2000 -s .data 0xf87b4000 -s .bss 0xf87b45604.b vxlan_udp_encap_recv

但是当我生成用于测试 ovs 内核模块的数据包并跳过它时,它会显示“该程序未运行。”

注意:我通过运行以下命令确认了所有模块符号: nm root/ovs/_build-gcc/datapath/linux/openvswitch.ko = 打印所有符号。并且lsmod也确认了ovs内核模块的存在。

我想让 ovs 模块在 netlink 套接字上收到来自其用户空间应用程序的消息后停止在指定的断点处,以便进行详细的调试,就像它允许我调试用户空间进程一样方便。请建议我如何解决这个问题或者是否有其他选择。我将非常感谢任何帮助或建议。谢谢!

最佳答案

要调试内核,您需要使用 KGDB / KDB .

关于c - 启用从用户空间进程调试内核模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28778145/

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