Recebendo erro ao tentar depurar no QtProject


14

Instalei a versão mais recente do QtProject e agora posso depurar o C++código.

Ao tentar depurar pela primeira vez, recebi este erro:

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

Respostas:


14

Nas versões do Ubuntu após a 10.10, você encontrará isso em aplicativos mais relacionados, como o QtCreator. É um recurso de segurança do Ubuntu que impede o depurador de se conectar a processos que não pertencem a ele.

Isso foi registrado como um bug # 3509 no QtCreator . Para contornar esse problema, faça o seguinte:

  • solução temporária (não sobreviverá a uma reinicialização):

     echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
    
  • Em um arquivo /etc/sysctl.d/10-ptrace.conf(já deve existir), altere o valor de kernel.yama.ptrace_scopea 0e, em seguida, recarregar a configuração: sudo sysctl -p.

Estou publicando explicitamente a solução temporária, pois você provavelmente não deseja manter esse recurso desativado em uma máquina comum por razões de segurança.


4

Eu tive o mesmo problema ao executar o projeto no terminal. Apenas desmarque (ou marque - execute - desmarque se por algum motivo estiver desmarcado) a caixa "Executar no terminal" em "Projetos" (na barra esquerda) - guia "Executar" - seção "Executar".


Graças a isso funcionou para mim, a depuração agora começa na saída do aplicativo QTCreators.
Squareborg 5/11

Voto esta porque é a solução mais fácil se você não precisar ver a saída do terminal do seu aplicativo.
Rob Davies

0

Você pode alterar os recursos gdb com

sudo setcap cap_sys_ptrace=eip /usr/bin/gdb

recursos do homem informa ao cap_sys_ptrace que dá direito a

Trace  arbitrary  processes  using ptrace(2); apply get_robust_list(2)
to arbitrary processes; inspect processes using kcmp(2).

Veja também man cap_from_text.

Esta é uma solução que não é removida pela reinicialização, mas também não é completamente segura. Estou aberto a sugestões de como fazer isso de forma permanente e segura.


-4

Basta abrir o QtCreator através de um terminal com permissões de root; funcionou para mim.

sudo qtcreator

Revela grande falha de segurança.
enedil
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.