Почему ругается и падает vlagrind ?

Добрый день.

Есть простая программа:

int main(int argc, char** argv)
{
    BYTE abyGrd[GrdContainerSize];
    int    nRet;
    DWORD dwID;
    HANDLE  hGrd;
    TGrdFindInfo GrdFindInfo;

    nRet = GrdStartup(GrdFMR_Local);
    hGrd = GrdCreateHandle((HANDLE)abyGrd, GrdCHM_MultiThread, NULL); 
    nRet = GrdSetAccessCodes( hGrd, dwPublic, dwPrivRD, dwPrivWR, dwPrivMS); 
    nRet = GrdSetFindMode(hGrd, GrdFMR_Local, 0, 0, 0, 0, 0, 0, 0, GrdFMM_ALL, GrdFMM_ALL); 
    nRet = GrdFind(hGrd, GrdF_First, &dwID, &GrdFindInfo);
    nRet = GrdLogin(hGrd, 0, 0);

/*
    BYTE b[1095];
    nRet = GrdRead(hGrd, 770, 1094, b, NULL); 
    b[1094]=0;
    printf("%s", b);
*/

    GrdCloseHandle(hGrd);
    GrdCleanup();
    
    return 0;
}

Она работает (и считывает записанное значение если убрать комментарии).
Но если её запустить под valgrind, то он сначала ругается, а потом и вовсе падает.
ubuntu 1604 64bit (SDK 7 Update 4)
В чем тут может быть проблема ?

Re: Почему ругается и падает vlagrind ?

Здравствуйте.

cie пишет:

Но если её запустить под valgrind, то он сначала ругается, а потом и вовсе падает.

Такая реакция инструмента анализа valgrind на защищенное приложение вполне допустима и не говорит о его некорректной работе.

Это происходит потому что наше API защищено специальным псевдокодом.