Подключите GDB к Qemu с разными ядрами на каждом smp - PullRequest
1 голос
/ 17 февраля 2020

Как мне прикрепить gdb к плате ARM Qemu, когда каждый smp работает с разными ядрами? Когда я использую опции 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)

1 Ответ

0 голосов
/ 20 февраля 2020

Я должен был добавить каждый процессор smp в качестве Arm Cpucluster в моем файле доски Qemu. Убедитесь, что вы назначаете разные индексы кластера для каждого процессора, иначе они будут подключаться к одной и той же GDB. Таким образом, для N количества кластеров, вы можете прикрепить N GDBS. После этого GDB можно подключить к прослушиванию Qemu через порт 1234, используя следующие команды:

gdb-multiarch
target extended :1234
file f1.axf
add-inferior
inferior 2
attach 2
file f2.axf
info thread

Добавьте столько подчиненных, сколько у вас есть кластеров ЦП. Чтобы присоединиться к кластеру 4, добавьте команду attach 4 в GDB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...