2014-02-15 3 views
0

Я разработчик C смотрит в C++:на исключение Я хотел бы отладки без стека размотки

понимаю ли я правильно, что если я сгенерирует исключение, то стек будет раскручиваться до первого обработчика исключений не найден ? Возможно ли вместо этого отлаживать любой throw без разматывания (т. Е. Не выходя из области, в которой она была объявлена, или какой-либо более высокой области)?

Причина, по которой я прошу, состоит в том, что - хотя есть обработчики исключений в более высокой области видимости - меня интересуют местные жители этой области (а также не хотят потерять RAII'ed objs) и хотят выглядеть у них во время отладки.

EDIT: в основном для g ++ на win + linux, но также заинтересован в других платформах.

+0

Большинство отладчиков позволит вам сделать это. Это может зависеть от того, на какой платформе вы находитесь. –

ответ

1

Вы не указали свой набор инструментов/платформу.

Но в MSVC вы можете настроить отладчик для разрыва различных типов исключений, в вашем случае это будут исключения C++.

Смотрите здесь для подробностей:

http://msdn.microsoft.com/en-us/library/d14azbfh.aspx

Edit: Для GCC/GDB увидеть этот вопрос Run an Application in GDB Until an Exception Occurs

+0

спасибо. Вы также знаете о GCC-toolchain? – ben

+0

Для справок в будущем: MSDN говорит: 'отладчик может немедленно нарушить выполнение вашего приложения, когда возникает исключение, давая вам возможность отлаживать исключение до вызова обработчика ....' – ben

+0

обновленный ответ .. – paulm

Смежные вопросы