Подготовка к отладке на аппаратной платформе

30 сентября 2026

ID debugging_kernelstub_hw_preparing

Чтобы подготовиться к отладке с использованием GDB-сервера ядра KasperskyOS на аппаратной платформе, нужно выполнить следующие шаги:

  1. Скоммутировать компьютер, на котором будет работать отладчик GDB, с аппаратной платформой.

    Для подключения компьютера к аппаратной платформе нужно использовать преобразователи USB-UART. Схемы соединения преобразователей USB-UART и аппаратных платформ см. в "Подготовка Raspberry Pi 4 B к запуску примеров" и "Подготовка OrangePi RV2 к запуску примеров".

  2. Задать параметры запуска ядра:
    • gdbstub;
    • gdbstub.transport=uart:<идентификатор UART>[?baudrate=<символьная скорость>];
    • [опционально] gdbstub.connection.timeout=<значение параметра>;
    • [опционально] earlycon={<описание UART>|none}.
  3. Создать файл .gdbinit, чтобы не вызывать вручную начальные GDB-команды при каждом запуске отладчика GDB. (Файл .gdbinit нужно сохранить в директории, где будет запускаться отладчик GDB.)

    Пример:

    # Задать путь для поиска динамических библиотек с отладочными символами из

    # состава KasperskyOS Community Edition SDK

    set sysroot /opt/KasperskyOS-Community-Edition-<platform>-<version>/sysroot-*-kos

    # Задать дополнительные пути для поиска динамических библиотек с отладочными

    # символами

    set solib-search-path /home/user/example/build/lib1:/home/user/example/build/lib2

    # Задать символьную скорость для взаимодействия с GDB-сервером ядра

    # Нужно задать значение 115200 бод.

    set serial baud 115200

    # Подключить отладчик GDB к GDB-серверу ядра

    # Нужно задать порт USB, через который подключен преобразователь USB-UART,

    # используемый для отладки. Также необходимо задать, что GDB-сервер ядра

    # взаимодействует с отладчиком GDB по расширенному протоколу.

    target extended-remote /dev/ttyUSB1

    # Настроить управление потоками исполнения (опционально)

    # Отладчик GDB может работать в режиме all-stop или non-stop. В первом режиме

    # отладчик GDB считает, что при остановке потока исполнения, контекст которого

    # находится в фокусе отладки, останавливаются все остальные потоки исполнения,

    # о которых известно отладчику GDB. Во втором режиме отладчик GDB считает, что

    # все потоки, кроме остановленного, продолжают исполняться. Режим all-stop

    # применяется отладчиком GDB по умолчанию, и GDB-сервер ядра дает возможность

    # использовать только этот режим. Чтобы изменить заданные по умолчанию параметры

    # управления потоками исполнения в режиме all-stop, нужно использовать GDB-команды

    # set scheduler-locking и set schedule-multiple.

    # В этом примере первая GDB-команда указывает отладчику GDB, что при возобновлении

    # исполнения потока, контекст которого находится в фокусе отладки (например,

    # GDB-командами continue, step, next), нужно возобновить исполнение остальных потоков.

    # Вторая GDB-команда указывает отладчику GDB, что при возобновлении исполнения потока,

    # контекст которого находится в фокусе отладки, нужно возобновить исполнение всех

    # потоков, входящих в процессы всех программ, для которых выполняется отладка.

    set scheduler-locking off

    set schedule-multiple on

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