将GDB附加到在每个smp上运行不同内核的Qemu

问题描述 投票:1回答:1

[如何在每个运行不同内核的smp上将gdb附加到ARM Qemu板上?使用gdb选项时,只能使用file中的gdb选项指定一个内核。

Qemu命令:

qemu-system-aarch64 -M virt -smp 2 \
-display none -nographic \
-device loader,file=f1.axf,cpu-num=0 \
-device loader,file=f2.axf,cpu-num=1 -s -S

[gdb命令已运行:

gdb-multiarch
target remote localhost:1234
file f1.axf

[此后,gdb显示两个线程,都将调试源显示为f1.axf

如果我在文件选项中传递f2.axf,则线程都显示f2.axf中的源代码和调试信息。

[gdb中没有错误消息

设置:

  • 主机:Ubuntu 18.04,64位
  • 来宾:Qemu Arm
  • GDB Multiarch:在主机上运行(Ubuntu)

如何在每个运行不同内核的smp上将gdb附加到ARM Qemu板上?使用gdb选项时,只能在gdb中使用file选项指定一个内核。 Qemu命令:qemu-system-aarch64 -...

gdb qemu gdbserver
1个回答
0
投票

我必须在Qemu板文件中将每个smp cpu添加为Arm Cpucluster。每个cpu群集都有其自己的gdb服务器进程。确保为每个cpu分配了不同的群集索引,否则它们将在同一进程中附加。因此,对于N个群集,您可以附加N个gdb。之后,可以使用以下命令将gdb连接到Qemu并在端口1234上进行侦听:

© www.soinside.com 2019 - 2024. All rights reserved.