Я установил много точек останова в lldb для приложения на языке C, которое я установил на свой MacOS. Точки останова в основном устанавливались в одной и той же функции в приложении. Однако на следующий день, когда я вернулся к приложению, чтобы продолжить работу над ним, и снова начал ставить точки останова в той же функции, возникла проблема в том, что останов произошел не внутри функции приложения, а в одном из базовые библиотеки приложения, и оно продолжает делать это снова и снова каждый раз, когда я пытаюсь взломать функцию (т. е. она останавливается в базовой библиотеке), и я не могу достичь желаемой функции, шагая , он просто делает шаг вперед в базовой библиотеке).
Обновлять:
Функция, в которой я устанавливаю точку останова, вызывается из обработчика сигнала. Например, когда я отправляю сигнал SIGINT, обработчик сигнала вызывает некоторые функции для очистки в приложении, и я устанавливаю точку останова на одной из этих функций, которые очищают. Иногда LLDB останавливается в функции, в которой я установил точку останова (с помощью stop reason = breakpoint 1.1
), иногда она останавливается в базовой/включенной библиотеке обработки событий с помощью stop reason = signal SIGSTOP
и, если последнее, если я нажимаю «c» (чтобы продолжить работу с точкой останова в приложение, надеюсь, и из библиотеки обработки событий), только иногда оно позволяет мне перейти к нужной точке останова, в других случаях просто говорит «Процесс 41524 возобновляется», и я никогда не могу добраться до нужной точки останова.