2014-09-14 4 views
0

Qt 5.3을 사용하여 Ubuntu 14.04에서 프로그래밍 중입니다. 내 호스트 응용 프로그램에서 외부 응용 프로그램 system("flowgeneratormanager &");을 실행하고 싶습니다. 외부 응용 프로그램은 /usr/bin/ 디렉토리에 있습니다.디버거를 시작할 때 다른 응용 프로그램을 실행할 수 없습니다.

호스트 응용 프로그램을 실행할 때 Ctrl + F5이면 문제가 없습니다. 내가 디버그 모드에서 내 호스트 응용 프로그램, F5를 시작할 때 는하지만, 외부 응용 프로그램이 시작되지 않습니다, 나는 테스트 응용 프로그램을 만들어 system("flowgeneratormanager &") OR QProcess::startDetached;

를 호출 한 후 디버거를 계속할 수 없습니다, 그냥 거기에 다른 응용 프로그램을 시작 . 디버깅을 시작한 후 QtCreator에 다음과 같은 대화 상자가 나타났습니다. gdb 프로세스가 40 초 내에 명령에 응답하지 않았습니다 .... 어떤 아이디어가 있습니까? 불쌍한 문법에 대해 미안합니다. 제 모국어가 아닙니다.

+0

코드가 충분하지 않아서 질문이 명확하지 않습니다. 백그라운드에서 프로세스를 실행하기 위해'시스템 '이라고 부르는 이유는 무엇입니까? [Advanced Linux Programming] (http://advancedlinuxprogramming.com/)에서 설명한 것처럼'fork'와'execve'를 사용하는 것이 더 좋습니다. 나는 "디버거가 계속할 수 없다"는 것이 무슨 뜻인지 이해하지 못합니까? 어떤'gdb' 명령을 입력 했습니까? 프로그램은 어떻게 컴파일됩니까? –

+0

Qt5.3에서 프로그래밍해야합니다. 사실, 나는 system()을 호출 할 수 없다. 나는 그것을 시험하고 싶었다. – alirakiyan

+0

그래서 뭐? Qt에서'fork'를 사용할 수 있습니다.'QProcess'를 사용하고 그 문서를 읽어야합니다. 그러나, 당신은 기초를 이해할 필요가있다. (그것은 fork와 execve를 이해하는 것을 의미한다.) 당신의 프로그램에'strace'를 사용 했습니까? 나는 "디버거가 계속할 수 없다"는 것을 이해하지 못한다. (커맨드 라인에서'gdb'를 사용해야한다.) 그리고'QProcess'가 모든 Qt 구현에서 작동해야한다. (Windows에서도) –

답변

0

QtCreator의 디버거 옵션 인 GDB 확장 탭에서 모든 자식 디버그를 선택 취소하십시오.