2014-09-14 2 views
0

Je suis en train de programmer sous Ubuntu 14.04 avec Qt 5.3. Je souhaite exécuter une application externe system("flowgeneratormanager &"); à partir de mon application hôte. L'application externe est dans le répertoire /usr/bin/. Lorsque j'exécute mon application hôte, Ctrl + F5, tout va bien. Mais quand je commence mon application hôte en mode débogage, F5, l'application externe ne démarre pas, et débogueur ne peut pas continuer après avoir appelé system("flowgeneratormanager &") OR QProcess::startDetached;Impossible d'exécuter une autre application lorsque je démarre le débogueur

J'ai créé une application de test, et vient de commencer une autre application en elle . Après avoir commencé le débogage, QtCreator a montré une boîte de dialogue qui dit: Le processus gdb n'a pas répondu à une commande dans les 40 secondes .... une idée? désolé de ma mauvaise grammaire.pas ma langue maternelle.

+0

Vous ne montrez pas assez de code, et votre question n'est pas assez claire. Pourquoi appelez-vous 'system' pour lancer un processus en arrière-plan? Mieux vaut utiliser 'fork 'et' execve' comme expliqué dans [Advanced Linux Programming] (http://advancedlinuxprogramming.com/). Je ne comprends pas ce que vous voulez dire par "débogueur ne peut pas continuer"? Quelles commandes 'gdb' avez-vous tapées? Comment votre programme est-il compilé? –

+0

Je dois programmer dans Qt5.3. En fait, je ne peux pas appeler system(). Je voulais juste le tester. – alirakiyan

+0

Alors quoi? Vous pouvez utiliser 'fork 'avec Qt, et vous devriez utiliser' QProcess' et lire sa documentation. Cependant, vous devez comprendre les bases (et cela signifie comprendre 'fork' et' execve'). Avez-vous utilisé 'strace' sur votre programme? Je ne comprends pas ce que vous entendez par "débogueur ne peut pas continuer" (vous devez utiliser 'gdb' sur la ligne de commande) - et' QProcess' devrait fonctionner sur toutes les implémentations Qt (même sous Windows) –

Répondre

0

Dans QtCreator, dans les options du débogueur, onglet GDB étendu, décochez la case Déboguer tous les enfants.

Questions connexes