Kaspersky IoT Secure Gateway 1000 SDK

Начало отладки программы

23 января 2025

ID 260169

После подключения отладчика к GDB-серверу ядра, запущенному в QEMU или на устройстве Kaspersky IoT Secure Gateway 1000, вам становится доступна консоль отладчика GDB. При этом происходит остановка в одном из процессов. Инфериор (англ. inferior) – объект в GDB, ассоциированный с одним из отлаживаемых процессов.

Чтобы приступить к отладке вашей программы:

  1. Получите идентификатор процесса (PID), в котором произошла остановка. Для этого выполните следующую команду в консоли GDB:

    (gdb) info inferiors

  2. Получите список идентификаторов процессов, выполнив следующую команду:

    (gdb) info os processes

    В отображенном списке процессов, найдите имя по идентификатору процесса (PID), полученному на предыдущем шаге.

  3. Если остановка произошла не в том процессе, который вы хотите отлаживать:
    1. Добавьте новый инфериор, выполнив команду add-inferior.

      Обратите внимание на номер добавленного инфериора в выводе команды.

    2. Переключитесь на новый инфериор, выполнив команду inferior 2 (вместо 2 подставьте номер инфериора, полученный на предыдущем шаге).
    3. Подключитесь к процессу, который вы хотите отлаживать с помощью команды attach 123 (вместо 123 подставьте PID нужного процесса, ранее отображенного командой info os processes).
  4. Загрузите ассоциированные с процессом отладочные символы, используя команду file <path>.

    Если отладочные символы сохраняются не в исполняемых файлах, а в отдельных файлах, то в исполняемые файлы добавляются ссылки на файлы с отладочными символами. При вызове команды file можно указать как исполняемые файлы, так и файлы с отладочными символами.

Теперь вы можете отлаживать ваш код, используя команды GDB. Например, задавать точки останова командой break, или пошагово перемещаться по коду с помощью команд step и next. Чтобы получить полный список доступных команд, выполните команду help all. Документация на отладчик GDB находится по веб-адресу https://www.sourceware.org/gdb/documentation/.

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!