std :: thread cra sh в режиме отладки (работа в процессе) с Netbeans / Cygwin - PullRequest
0 голосов
/ 11 марта 2020

Я пытаюсь отладить (GDB) мое приложение, разработанное с Cygwin под Windows. Когда я отлаживал это, я получил «Сигнал получен:? (Неизвестный сигнал)», когда поток создан и программа остановлена.

#include <iostream>
#include <thread>
using namespace std;

void ConnectionTimer()
{

}

int main(int argc, char** argv) {

    cout<<"Before thread creation"<<endl;  
    std::thread t( ConnectionTimer);
    cout<<"After thread creation"<<endl;          
    t.join();
    cout<<"After join"<<endl;   
    return 0;
}

Остановка отладчика на строке status = NtCreateMutant (&mtx, MUTEX_ALL_ACCESS, &attr, bInitialOwner); в kernel32. cc.

В режиме запуска работает как положено, но в режиме отладки - cra sh. Результат в режиме запуска:

Before thread creation
After thread creation
After join

Результат в режиме отладки (до cra sh):

Before thread creation

Есть идеи, что мне не хватает?

РЕДАКТИРОВАТЬ

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

Стек вызовов

Сигнал перехвачен, что вызывает cra sh

Сброс

Конфигурация: Cygwin 3.1.4-1 на W10 под GDB 8.2.1-1, скомпилировано с g ++ (G CC) 9.2.0-3

1 Ответ

0 голосов
/ 13 марта 2020

Я нашел причину крэ sh.

Мой антивирус (Trend) блокировал программу, мне пришлось создать исключение для exe, и теперь все работает нормально.

...