Помощь с исключительной точкой останова в XCode 4 - PullRequest
1 голос
/ 17 августа 2011

Я установил точку прерывания исключений в XCode 4. Будет ли он прерываться для исключений, которые происходят в среде Cocoa Touch И обрабатываются этой средой?IE Остановится ли отладчик на всех исключениях, даже если они являются естественной частью инфраструктуры и обрабатываются ею внутренне?

Мой отладчик продолжает останавливаться для, казалось бы, безвредного исключения из глубины структуры, и мне нужнознаю, смогу ли я спокойно проигнорировать это.

Ответы [ 3 ]

3 голосов
/ 18 октября 2011

Если вы похожи на меня, бывают случаи, когда вы хотите игнорировать определенные исключения (например, периодически глючная ошибка Apple CMMThrowExceptionOnError, которую Apple игнорирует, чтобы предоставить какие-либо отзывы о моих отчетах об ошибках в течение нескольких месяцев)

Итак, мое не очень эффективное решение состоит в том, чтобы добавить следующую точку останова вместо «Добавить точку исключения C ++ ...»

из командной строки GDB, введите перерыв __cxa_throw

Затем в редакторе точек останова XCode добавьте следующую «Команду отладчика» к этой точке останова. Подставив неправильный адрес $ eip, вы можете исключить исключения из вашей точки останова.

silent
# go up one stack frame silently
up-silently
# in my particular app, address of CMMThrowExceptionOnError is 0x9704d22e
if ( $eip == 0x9704d22e )
   # echo gdb ignore exception\n
   #print $eip
   cont
end

Если вы можете придумать лучшее решение, которое не связано с накладными расходами сценария отладчика, сообщите мне.

2 голосов
/ 17 августа 2011

Точка останова исключения - это всего лишь точка останова для исключений. Это включает в себя тех, кто в рамках. Неважно, чье это исключение - если оно поднято, оно должно сломаться.

0 голосов
/ 27 марта 2012

Просто короткая заметка о LLDB, используемая defat в Xcode 4.3. Команды имеют другой синтаксис.

set $eip = xxxx

теперь

reg write tip 0x006373ec

полная карта команд доступна на http://lldb.llvm.org/lldb-gdb.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...