Есть ли способ установить точку останова в GDB без остановки цели?

#debugging #gdb #embedded #breakpoints

#отладка #gdb #встроенный #точки останова

Вопрос:

Я использую GDB (через IDE) для отладки микроконтроллера arm cortex, и я столкнулся с проблемой, когда микро ненадолго останавливается (на 10-20 мс) всякий раз, когда установлена или очищена точка останова (не нажата, а установлена, так как в коде еще не достигнута точка останова).). Такая длительная пауза может вызвать серьезные проблемы, например, при управлении электродвигателем.

В IDE есть консоль отладки, которая показывает, что клиент GDB отправляет SIGINT на сервер GDB всякий раз, когда я добавляю или удаляю точку останова. Я знаю, что в клиенте командной строки вам нужно использовать ctrl c, чтобы прервать процесс для выдачи любой команды, Но для современных микроконтроллеров (ARM cortex-m и т. Д.) Нет Необходимости прерывать процессор для вставки точек останова, чтения памяти и в некоторых случаях для отслеживания программывыполнение. Мне интересно, является ли это чем-то, что навязывается интерфейсом GDB искусственно.

Есть ли какой-нибудь способ создать новую точку останова без остановки цели?

Я пытался использовать «асинхронный» режим в GDB, но он сообщает мне, что я должен остановить программу, чтобы вставить точки останова. Я также проверил, что точки останова могут быть установлены с помощью базового сервера отладки (OpenOCD) без остановки, поэтому в этом случае GDB неверен.

Приветствуется любой ввод, и заранее спасибо.

Комментарии:

1. Встроенная отладка, безусловно, позволяет это, поскольку я могу сделать это в отладчике Keil, но я понятия не имею, делает ли это GDB. Вы пробовали hbreak что — нибудь более простое , чем простое break ? Кстати, я не думаю, что ваш вопрос нуждается в обосновании, и если бы вы не написали так много для такого простого вопроса, я мог бы прочитать все это 😉 Подумайте о том, чтобы сократить его до простого вопроса.

2. @Clifford Спасибо за отзыв. Я знаю, что иногда люди получают ответы на неправильные вопросы, когда не понимают причины этого, но в данном случае я думаю, что вы правы и дополнительная информация не нужна.