J'ai installé la dernière version de le QtProject afin que je puisse maintenant déboguer le code C++
.
En essayant de déboguer pour la première fois, j'ai eu cette erreur:
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
Sur les versions d'Ubuntu après 10.10, vous rencontrerez cela dans des applications plus connexes, telles que QtCreator. C’est une fonctionnalité de sécurité d’Ubuntu qui empêche le débogueur de s’attacher à des processus qui ne lui appartiennent pas.
Ceci est classé en tant que bug n ° 3509 contre QtCreator . Pour contourner ce problème, procédez comme suit:
solution temporaire (ne survivra pas au redémarrage):
echo 0 | Sudo tee /proc/sys/kernel/yama/ptrace_scope
Dans un fichier /etc/sysctl.d/10-ptrace.conf
(devrait déjà exister), remplacez la valeur de kernel.yama.ptrace_scope
par 0
, puis rechargez la configuration: Sudo sysctl -p
.
Je publie explicitement la solution temporaire, car vous ne souhaitez probablement pas laisser cette fonctionnalité désactivée sur un ordinateur normal pour des raisons de sécurité.
J'ai eu le même problème lors de l'exécution du projet dans le terminal. Décochez simplement (ou cochez - ou exécutez - décochez si c'est pour une raison quelconque) la case "Exécuter dans le terminal" dans "Projets" (dans la barre de gauche) - onglet "Exécuter" - section "Exécuter".
Vous pouvez modifier les capacités de gdb avec
Sudo setcap cap_sys_ptrace=eip /usr/bin/gdb
les capacités de l'homme indiquent à cap_sys_ptrace qu'il a le droit de
Trace arbitrary processes using ptrace(2); apply get_robust_list(2)
to arbitrary processes; inspect processes using kcmp(2).
Voir aussi man cap_from_text.
Il s’agit d’une solution qui n’est pas supprimée au redémarrage, mais elle n’est pas non plus totalement sûre. Je suis ouvert aux suggestions sur la manière de le faire de manière permanente et en toute sécurité.