Инструмент анализа исключений для C ++ - PullRequest
16 голосов
/ 26 августа 2008

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

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

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

Ответы [ 5 ]

6 голосов
/ 07 апреля 2009

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

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

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

6 голосов
/ 26 августа 2008

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

1 голос
/ 30 мая 2009

EDoC ++ (http://edoc.sourceforge.net) - другая альтернатива.

1 голос
/ 26 августа 2008

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

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

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

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

0 голосов
/ 26 августа 2008

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

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

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

...