QtProject'te hata ayıklamaya çalışırken hata alma


14

Şimdi kod hata ayıklamak için QtProject en son sürümünü yükledimC++ .

İlk kez hata ayıklamaya çalışırken bu hatayı aldım:

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

Yanıtlar:


14

10.10'dan sonraki Ubuntu sürümlerinde, QtCreator gibi daha ilgili uygulamalarda bu durumla karşılaşacaksınız. Hata ayıklayıcının kendisine ait olmayan işlemlere bağlanmasını engelleyen bir Ubuntu güvenlik özelliğidir .

Bu QtCreator karşı # 3509 bir hata olarak dosyalanır . Bu soruna geçici bir çözüm bulmak için şunu yapın:

  • geçici çözüm (yeniden başlatmadan kurtulamayacak):

     echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
    
  • Bir dosyada /etc/sysctl.d/10-ptrace.conf(zaten mevcut olmalıdır) değerini değiştirmek kernel.yama.ptrace_scopeiçin 0ve sonra yapılandırmayı yeniden yükleyin: sudo sysctl -p.

Güvenlik nedeniyle bu özelliği normal bir makinede devre dışı bırakmak istemediğiniz için, geçici çözümü açıkça gönderiyorum.


4

Projeyi terminalde çalıştırırken de aynı sorunu yaşadım. Sadece "Projeler" (sol çubukta) - "Çalıştır" sekmesi - "Çalıştır" bölümündeki "Terminalde çalıştır" kutusunun işaretini kaldırın (veya kontrol edin - kontrol edin - işaretini kaldırın) işaretini kaldırın.


Bu benim için teşekkürler teşekkürler hata ayıklama şimdi QTCreators uygulama çıktı başlar.
— squareborg

Bunu oylayın, çünkü uygulamanızdan terminal çıkışını görmeniz gerekmiyorsa en kolay çözüm budur.
— Rob Davies

0

Gdb özelliklerini aşağıdakilerle değiştirebilirsiniz:

sudo setcap cap_sys_ptrace=eip /usr/bin/gdb

adam yetenekleri cap_sys_ptrace'e

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

Ayrıca bkz. Adam cap_from_text.

Bu, yeniden başlatma ile kaldırılmayan bir çözümdür, ancak tamamen güvenli değildir. Bunu kalıcı ve güvenli bir şekilde nasıl yapacağınıza dair önerilere açığım.


-4

Sadece kök izinleri olan bir Terminal aracılığıyla QtCreator'ı açın; benim için çalıştı.

sudo qtcreator

Büyük güvenlik açığı ortaya çıkarır.
— enedil
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.