web-dev-qa-db-fra.com

Qt Creator, ptrace: opération non autorisée. Quelle est la solution permanente?

Lors du débogage C++ code dans Qt creator j'obtiens l'erreur suivante

ptrace: Operation not permitted.

Could not attach to the process. Make sure no other debugger traces this process.
Check the settings of
/proc/sys/kernel/yama/ptrace_scope
For more details, see /etc/sysctl.d/10-ptrace.conf

Ici, une solution temporaire est trouvée: Réception d'une erreur lors de la tentative de débogage dans QtProject

  • solution temporaire (ne survivra pas à un redémarrage):

    echo 0 | Sudo tee /proc/sys/kernel/yama/ptrace_scope

Mais il est difficile d'exécuter le même code dans le terminal à chaque fois que je démarre mon PC pour utiliser Qt.

What is the permanent solution for this?
52
Indra

Si vous exécutez Ubuntu,

La façon recommandée d'activer le paramètre de noyau ptrace nécessaire (suggéré par qtcreator) est de modifier /etc/sysctl.d/10-ptrace.conf

Sudo vim  /etc/sysctl.d/10-ptrace.conf

Puis changez

kernel.yama.ptrace_scope = 1

à

kernel.yama.ptrace_scope = 0

Sauver,

puis appliquez:

$ Sudo sysctl --system -a -p|grep yama
kernel.yama.ptrace_scope = 0

courir

man sysctl

pour plus d'informations.

61
xor007

J'ai eu la réponse.

  • Accédez à l'emplacement /etc avec le privilège root.

  • Trouvez le fichier rc.local.

  • Ouvrez-le dans un éditeur de texte comme gedit et ajoutez-y le code suivant
  • echo 0 | tee /proc/sys/kernel/yama/ptrace_scope

Redémarrez votre PC et vous pouvez voir le débogueur fonctionner parfaitement.

24
Indra

J'ai trouvé la réponse qui me convient sur ubuntu dans le lien ci-dessous et le crédit revient à dstzcxr

https://askubuntu.com/a/501271/39558

Il suffit de décocher (ou de cocher - exécuter - décocher si elle est décochée pour une raison quelconque) la case "Exécuter dans le terminal" dans "Projets" (sur la barre de gauche) - onglet "Exécuter" - section "Exécuter".

5
Ehsan Sadr