问题标签 [kgdb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
68 浏览

linux - 如何在没有串行连接的情况下使用 gdb 调试 linux 内核?

我有两台台式机,我想用一台作为调试器,一台作为调试器。大多数最新的主板都没有串行连接。我在网上找到的所有信息都建议使用串行端口连接到任何机器以与 GDB 接口。如何连接两台没有串口的(linux)机器进行调试?

一些建议说使用xHCI DbC,这需要一根特殊的 USB3 电缆,其中 rx/tx 线交叉。如何检查我的主板是否支持此功能?

显然 USB 到串行转换器不起作用,因为 USB 使用中断。我可以使用 PCI 串行扩展卡吗?

由于错误,使用kgdboe通过以太网连接两台机器不起作用。

0 投票
0 回答
81 浏览

c - vmlinux 或 vmlinuz 不包含设备驱动程序函数名称和地址,但相同的驱动程序工作正常

在realtek以太网设备驱动程序rtl8169_poll中的linux内核中有一个功能。linux-5.12.6在该位置内lib/modules/5.12.6/kernel/drivers/net/ethernet/realtek/有 r8169.ko,它显示该函数存在并0000000000000f00在执行objdump命令时给出偏移地址objdump -S r8169.ko

所以在gdb中,当我调试时vmlinux—— list rtl8169_poll它说Function "rtl8169_poll" not defined.基本上我将无法在使用kgdb运行目标和gdb在开发系统上进行远程调试时调试这个功能。所有这些都是在包含 vmlinux 文件的编译目录中完成的。完整的位置是/home/fwd/Desktop/kernel-5.12.5/vmlinux

但是当我调试 vmlinuz 文件并尝试解决list rtl8169_poll这个问题时

上面那行说我在编译内核时添加了这些标志这个输出是 No symbol table is loaded. Use the "file" command关于什么的

gdb list 命令rtl8169_poll是在目标机器上本地完成的。目前还没有开始远程调试。但我希望 list 命令应该打印该函数,因为它验证了该函数存在于位于 /lib/modules/...../realtek/ 的驱动程序中,带有 objdump 并且我在编译内核时添加了 degug 标志,lspci -vvv还显示下面的司机04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)

0 投票
0 回答
40 浏览

gdb - KGDB:来自目标的虚假跟踪状态回复:超时

我对内核和 KGDB 的东西很陌生。我只想调试三星手机的内核。我从pucarasec的博客文章中发现了这些东西。现在我处于指令的末尾,这是通过以下代码启用 KGDB 的阶段:

结果,我得到了这个:

gdb.error:来自目标的虚假跟踪状态回复:超时

我已经搜索过这个错误,但没有什么与三星内核无关。如何解决?或者有没有其他方法可以进行三星内核调试?