Я пытаюсь отладить (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