#debugging #llvm #lldb
#отладка #llvm #lldb
Вопрос:
Я пытаюсь использовать lldb для отладки c и хочу остановить, если генерируется исключение, подобное gdb catch throw
, и я не могу найти эквивалент в документации lldb.
Ответ №1:
Используется breakpoint set -E c
для прерывания всех исключений и breakpoint set -F std::range_error
для прерывания определенного исключения.
Ответ №2:
В Xcode вы можете установить точку останова исключения (Просмотр> Навигаторы> Показать навигатор точек останова, нажмите кнопку в нижней части окна списка точек останова, чтобы добавить новую точку останова).
Если вы используете lldb командной строки, установите точку останова __cxa_throw
для генерирования исключений C , objc_exception_throw
для генерирования исключений Objective-C.
Для всех исключений c : break set -E C
.
Комментарии:
1. для всех исключений c : набор прерываний -E c
2. ах, я пропустил опцию -E для установки точки останова! Спасибо, что отметили это.
3. Варианты ‘-F’ и ‘-E’ у меня не работали, но ‘точка останова -n __cxa_throw’ работала (для всех исключений), а также ‘точка останова -n <имя исключения>’ (для конкретных исключений).
4. «-E objc» также работает, если вам нужны исключения Objective-C.
5.
break set -E c
у меня не сработало (возможно, потому, что я использую настоящий GNU g вместо clang от Apple?), ноbreak set -n __cxa_throw
сработало. Комментарий @AnthonyHall отсутствуетset
.
Ответ №3:
Я думаю, breakpoint set -w <boolean>
это правильный ответ, который вы можете использовать help breakpoint set
для просмотра документа.