﻿# V003\. Unrecognized error found\.\.\.

Наличие предупреждения V003 в отчёте означает, что произошла критическая ошибка внутри анализатора\. Скорее всего, в этом случае вообще никаких других предупреждений про анализируемый файл не будет выдано\.

## Диагностика неполадок

Хотя предупреждение V003 возникает достаточно редко, мы будем благодарны, если вы поможете нам исправить проблему, которая привела к этому предупреждению\. Для этого пришлите, пожалуйста, нам файлы, описанные далее, через форму [обратной связи](https://pvs-studio.ru/ru/about-feedback/)\.

### Файл с трассировкой стека \(stack trace\)

При получении предупреждения вида:

```cpp
V003 Unrecognized error found: stacktrace was written to the file
source.cpp.PVS-Studio.stacktrace.txt 1
```

Вы можете перейти к текстовому файлу, который имеет примерно следующий вид:

```cpp
PVS-Studio version: 7.XX.XXXXX.XXXX
#NN  Object "[0xffffffffffffffff]", at 0xffffffffffffffff, in 
....
#1   Object "[0xb39b7e]", at 0xb39b7e, in 
#0   Object "[0xcfac19]", at 0xcfac19, in
```

В файле содержатся только адреса функций, т\.к\. дистрибутив PVS\-Studio распространяется без отладочной информации\. Однако мы сможем расшифровать этот файл на нашей стороне и определить источник ошибки\.

**Примечание\.** Файл с трассировкой стека не содержит никакой информации об исходном коде\.

### Промежуточные файлы для запуска анализа

Анализ исходного кода на языках C и C\+\+ осуществляется на основе препроцессированного \('\*\.PVS\-Studio\.i'\) и конфигурационного \('\*\.PVS\-Studio\.cfg'\) файлов\. Препроцессированный файл формируется из исходного файла \(например, 'file\.cpp'\) препроцессором путём раскрытия макросов и директив '\#include'\. Конфигурационный файл содержит [настройки](https://pvs-studio.ru/ru/docs/manual/6615/#cfg), необходимые для корректного запуска анализа на файле\. Набор этих файлов позволяет локализовать проблему в ядре C и C\+\+ анализатора\.

Далее описаны способы генерации этих файлов различными компонентами продукта\.

**Плагины для IDE\.** На вкладке 'Common Analyzer Settings' настроек PVS\-Studio установите опцию 'RemoveIntermediateFiles' в 'False' и заново выполните анализ файлов, на которых происходит падение\.

**PVS\-Studio\_Cmd / pvs\-studio\-dotnet**\. В [файле конфигурации анализа](https://pvs-studio.ru/ru/docs/manual/6653/) \('Settings\.xml'\) установите опцию 'RemoveIntermediateFiles' в 'False' и заново выполните анализ файлов, на которых происходит падение\.

**CompilerCommandsAnalyzer / pvs\-studio\-analyzer**\. Добавьте флаг '\-\-dump\-files' в строку запуска анализа:

```cpp
pvs-studio-analyzer analyze .... --dump-files
```

После этого в папке проекта надо найти соответствующий i\-файл \(например, 'file\.PVS\-Studio\.i'\) и соответствующий ему 'file\.PVS\-Studio\.cfg'\.

**Примечание\.** Препроцессированные файлы содержат часть исходного кода проекта\. Мы понимаем, что политика компании может запрещать распространение фрагментов исходного кода проекта\. Поэтому в случае необходимости мы готовы заключить NDA\. Передача препроцессированных и конфигурационных файлов может существенно упростить и ускорить процесс исправления ошибки в анализаторе\.