다음과 같은 코드가 있다고 가정한다.

#include <QCoreApplication>
#include <QDebug>
#include <QThread>

struct MyThread : QThread {
	void run() override {
		while (true) {
			qDebug() << "hahaha";
			QThread::sleep(1);
		}
	}
};

int main(int argc, char* argv[]) {
	QCoreApplication a(argc, argv);
	MyThread myThread;
	myThread.start();
	return a.exec();
}

QtCreator에서 디버깅을 할 때 다음과 같은 “SIGSTOP”이라는 Linux Signal이 발생하여 IDE에서 멈출 때가 있다.


해결 방안 1

Projects - Run 에서 “Run in terminal” 옵션을 해제한다(workaround).


해결 방안 2

Linux Signal을 IDE에서 무시하도록 디버그 옵션을 넣는다. Tools - Options - Debugger - Locals & Expressions - Debugging Helper Customization에서 다음과 같은 옵션을 추가한다.

handle SIGSTOP pass nostop noprint