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.