Menerima kesalahan saat mencoba men-debug di QtProject

14

Saya menginstal versi terbaru dari QtProject jadi sekarang saya dapat men-debug C++kode.

Saat mencoba melakukan debug untuk pertama kali saya mendapatkan kesalahan ini:

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
pengguna124009
sumber

Jawaban:

14

Pada versi Ubuntu setelah 10.10 Anda akan mengalami ini dalam aplikasi yang lebih terkait, seperti QtCreator. Ini adalah fitur keamanan Ubuntu yang mencegah debugger untuk melampirkan ke proses yang tidak dimiliki olehnya.

Ini diajukan sebagai bug # 3509 terhadap QtCreator . Untuk mengatasi masalah ini, lakukan ini:

  • solusi sementara (tidak akan selamat dari reboot):

     echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
    
  • Dalam file /etc/sysctl.d/10-ptrace.conf(harus sudah ada), mengubah nilai kernel.yama.ptrace_scopeuntuk 0dan kemudian kembali konfigurasi: sudo sysctl -p.

Saya secara eksplisit memposting solusi sementara, karena Anda mungkin tidak ingin fitur ini dinonaktifkan pada mesin biasa untuk alasan keamanan.

gertvdijk
sumber
4

Saya memiliki masalah yang sama saat menjalankan proyek di terminal. Hapus centang (atau centang - jalankan - hapus centang jika karena alasan tertentu hapus centang) kotak "Jalankan di terminal" di "Proyek" (di bilah kiri) - "Jalankan" tab - "Jalankan" tab.

asumsi_ masuk akal
sumber
Terima kasih ini bekerja untuk saya, debugging sekarang dimulai pada output aplikasi QTCreators.
squareborg
Memilih ini karena ini solusi termudah jika Anda tidak perlu melihat output terminal dari aplikasi Anda.
Rob Davies
0

Anda dapat mengubah kapabilitas gdb dengan

sudo setcap cap_sys_ptrace=eip /usr/bin/gdb

kapabilitas man memberitahu cap_sys_ptrace memberi hak untuk

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

Lihat juga man cap_from_text.

Ini adalah solusi yang tidak dihapus oleh reboot, tetapi juga tidak sepenuhnya aman. Saya terbuka untuk saran bagaimana melakukan ini secara permanen dan aman.

Matti X Virtanen
sumber
-4

Cukup buka QtCreator melalui Terminal dengan izin root; itu berhasil untuk saya.

sudo qtcreator
Prashant Singh Rathore
sumber
Ini mengungkapkan lubang keamanan besar.
enedil