идентифицировать освобожденный объект при закрытии приложения - PullRequest
2 голосов
/ 11 июня 2019

в приложении для Android есть поток, выполняющий код на С ++.ОС Android может закрыть приложение, и указатель зависает, это вызывает редкие сбои, которые я не могу воспроизвести.

Есть ли решение для выявления такой проблемы?

например, будет ли это работать?

проверка, если указатель main_class == MainClass::instance в чувствительных точках в логике приложения

mainclass.h

class MainClass
{
public:
    MainClass();
    ~MainClass();

    static MainClass* instance;

    void DoWork();
    bool Finished();
}

основной класс.cpp

MainClass* MainClass::instance = nullptr;

MainClass::MainClass()
{
    instance = this;
}

MainClass::~MainClass(){}
void MainClass::DoWork(){}
bool MainClass::Finished()
{
    return false;
}

main.cpp

int main(int argc, char *argv[])
{ 
    MainClass* main_class = new(std::nothrow) MainClass();

    if (main_class == nullptr)
    { 
        return 0; 
    }

    while(main_class->Finished() == false)
    {
        main_class->DoWork();
    }

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