определение поведения для каждой функции c ++ - PullRequest
0 голосов
/ 25 февраля 2012

Кто-нибудь знает способ определения поведения, вызываемого в каждой функции или строке в программе на C ++?

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

по сути, я ищу способ сценариев сбоев в C ++, чтобы мне не приходилось определять точки с помощью некоторых макросов, а просто сказать приложению по существу циклически проходить все эти «точки смерти»и подтвердите, что процесс может восстановиться после каждого из них, делая все это в автоматическом режиме.

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

Ответы [ 2 ]

1 голос
/ 25 февраля 2012

Я предлагаю вам сделать еще один шаг и протестировать каждую инструкцию, а не целые выражения, операторы или строки.

Вы должны иметь возможность использовать API-интерфейс отладчика для установкипрограммная точка останова (хотя вам понадобится вспомогательный процесс, IIRC).Процесс будет приостановлен, когда будет достигнута точка останова.И вы можете получить событие при достижении точки останова и завершить процесс.

1 голос
/ 25 февраля 2012

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

Для Visual Studio информация здесь: http://msdn.microsoft.com/en-us/library/c63a9b7h.aspx И самый верхний ответ здесь содержит информацию о том, как это сделать в GCC: Автоматическое добавление журналов функций входа / выхода в проект

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