Почему проверка CPP не показывает ОШИБКИ?

это

cppcheck --enable=style --inconclusive --check-config --xml --xml-version=2 -v -I.. -I../mocks -I../gmock -I../gtest -DUNIT_TEST ../src

результаты в этом

<?xml version="1.0" encoding="UTF-8"?>
<results version="2">
<cppcheck version="1.52"/>
<errors>
Checking ../src/AppMain.cpp...
</errors>
</results>

Очевидно, я делаю что-то не так — но что?

Кстати, я уверен, что код имеет проблемы, но просто чтобы быть уверенным, я вставил эти две строки в него

 char a[10];
a[10] = 0;

И не было никакого сообщения о ссылке за пределы

2

Решение

Без минимального рабочего примера, чтобы воспроизвести проблему, трудно помочь.

Прежде всего, удалите параметр check-config, так как он делает следующее:

—check-config Проверьте конфигурацию cppcheck. Нормальный код
анализ отключен этим флагом.

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

Кроме того, вы должны указать «—enable = all», если хотите видеть ошибки, потому что выход за границы классифицируется как ошибка, а не как стиль. Неиспользуемая переменная (как указано в вашем примере) — это проблема стиля.

Запуск cppcheck (v1.72)

cppcheck --enable=all --inconclusive --xml-version=2 -v foo.cpp

на этом

void main()
{
char a[10];
a[10] = 0;
}

приводит к следующему выводу для меня

<?xml version="1.0" encoding="UTF-8"?>
<results version="2">
<cppcheck version="1.72"/>
<errors>
<error id="unreadVariable" severity="style" msg="Variable &apos;a&apos; is assigned a value that is never used." verbose="Variable &apos;a&apos; is assigned a value that is never used.">
<location file="foo.cpp" line="5"/>
</error>
<error id="arrayIndexOutOfBounds" severity="error" msg="Array &apos;a[10]&apos; accessed at index 10, which is out of bounds." verbose="Array &apos;a[10]&apos; accessed at index 10, which is out of bounds.">
<location file="foo.cpp" line="5"/>
</error>
</errors>
</results>
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]