从英特尔主机调试在 AMD 目标上运行的内核-如何将控制权返回给 gdb?

从英特尔主机调试在 AMD 目标上运行的内核-如何将控制权返回给 gdb?

我在 AMD 和 Intel 机器上的 Ubuntu 上编译了内核 3.13.0-55。我尝试将编译后的内核复制到 Intel 目标,但无法启动。因此,我在 Intel 上编译了相同版本的内核。我可以在 Intel 上运行此内核,Intel 等待 kgdb 附加到它。我在 AMD 上使用

target remote /dev/ttyS0

我能够通过串行连接进入内核代码。然后我继续,英特尔继续运行,我无法再将控制权返回给在 AMD 上运行的调试器。将 g 写入 /proc/sysrq-trigger 会停止英特尔,但控制权不会返回给 AMD gdb。

这是因为它不是完全相同(未复制)的内核版本吗?如果是,我应该如何编译正确的内核才能从 AMD 调试 Intel?内核配置中设置了启用 Magic SysRq。


编辑:

虽然当我尝试从 Amd 调试 Intel 时它不起作用(两者都运行相同的内核 3.13.11-ckt20 SMP 2015 x86_64 x86_64 x86_64 GNU/Linux):目标 - Intel(R) Core(TM)2 Duo CPU E8500 @ 3.16GHz 主机 - AMD FX(tm)-4100 四核处理器

它以相反的方向工作:目标 - AMD FX(tm)-4100 四核处理器主机 - Intel(R)Core(TM)2 Duo CPU E8500 @ 3.16GHz

也许它与硬件断点,寄存器,cpu实现有关?

相关内容