Обнаружение утечек памяти статического кода для visual studio vc ++ - PullRequest
2 голосов
/ 10 августа 2010

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

void noRelease(void)
{
    struc1 *memoryLeak;

    memoryLeak = (struc1 *) malloc(sizeof struc1);
    if (NULL != memoryLeak)
    {
        memoryLeak->a=3;
    }
}

VSTS (Visual Studio Team System) обнаруживает утечки памяти из-за исключений, ноне может увидеть эту простую утечку.

Любые идеи будут очень полезны.Большое спасибо.

Ответы [ 2 ]

1 голос
/ 19 марта 2013

CPPCheck выполняет статический анализ кода и обнаруживает такие утечки

http://cppcheck.sourceforge.net/

1 голос
/ 10 августа 2010

Хм ... Прикрытие может сделать это, но вам придется продать свой дом, чтобы заплатить за него.Однажды я написал статический анализатор, который проверяет, вызывается ли пара функций в заданной области действия функции.Я использовал API статического анализа, который поставляется с программой «Understand 4 C ++», созданной scitools.www.scitools.com Я написал поисковик / исследователь, используя управляемый API (который я написал), который оборачивает их C API.Примечание: Однако Понимание 4 с ++ не является бесплатным.

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

...