Инструмент анализа исключений для С++

Я искал инструмент для извлечения информации об исключении из программы на С++. Самая важная функция, которую я ищу: я хочу знать все исключения, которые могут быть выбраны из функции (которая будет включать в себя всю функцию, которая вызывается из этой функции рекурсивно).

Я всегда думал, что документирование ошибок и исключений, в частности, очень сложно (и требует больших усилий для обновления). Но если есть способ автоматизировать это, это будет очень полезно.

Инструмент для окон и Visual Studio был бы предпочтительным, но не необходимым, я всегда мог бы обойти это.

Ответ 1

PC-Lint утверждает, что делает статический анализ исключений кода С++.
Coverity - еще один статический инструмент анализа кода на С++, который, по-видимому, информирует вас о необработанных исключениях.
AQtime утверждает, что он отслеживает исключения как часть анализа кода. Кроме того, они рекламируют интеграцию Visual Studio.
Здесь - это список нескольких инструментов анализа статического кода.

Ответ 2

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Работа с этим инструментом - это моя дневная работа.

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

Как и в другом анализе, QA С++ выводит список типов, которые выбрасываются из тела функций и дерева вызовов. Я считаю, что это будет вся информация, которая вам нужна.

Ответ 3

Спасибо за ваш ответ. Некоторые комментарии по этому поводу:

PC-Lint: они упоминают, что у них есть "анализ исключений из С++ без ограничений", не уверенный, что это означает. И, к сожалению, они не предлагают пробную версию. И у меня нет денег на покупку программного обеспечения за $239, не зная, что он решит мою проблему. Но я отправлю их по почте и спрошу.

Покрытие: не удалось найти упоминания об исключениях в их описании. Они говорят, что у них есть третий интерфейс, где можно сделать плагин для анализа этого. Не совсем то, что я ищу.

AQtime: имеет только время выполнения исключения.

Ответ 5

Я получил ответ от PC-Lint. И хотя они анализируют исключение, кажется, что это больше похоже на то, чтобы ловить ошибки в вашем коде. Фактически, на странице примера, которую они мне отправили, весь пакет, похоже, должен анализировать код ошибок и ошибок.

Это не то, что я хочу, мне нужно что-то вроде графика вызовов, но для исключений.

Я предполагаю, что мой поиск продолжается...