การรับข้อผิดพลาดขณะพยายามดีบักใน QtProject


14

ฉันติดตั้งQtProjectเวอร์ชันล่าสุดดังนั้นตอนนี้ฉันสามารถดีบักC++รหัสได้

ในขณะที่พยายามแก้ไขข้อผิดพลาดเป็นครั้งแรกฉันได้รับข้อผิดพลาดนี้:

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

คำตอบ:


14

ใน Ubuntu เวอร์ชันหลัง 10.10 คุณจะพบปัญหานี้ในแอปพลิเคชันที่เกี่ยวข้องเพิ่มเติมเช่น QtCreator มันเป็นคุณสมบัติด้านความปลอดภัยของ Ubuntu ที่ป้องกันไม่ให้ดีบักเกอร์แนบกับกระบวนการที่ไม่ได้เป็นของเขา

นี้จะยื่นเป็นข้อผิดพลาด # 3509 กับ QtCreator เมื่อต้องการแก้ไขปัญหานี้ทำสิ่งนี้:

  • วิธีแก้ปัญหาชั่วคราว (จะไม่รอดจากการรีบูต):

     echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
    
  • ในไฟล์/etc/sysctl.d/10-ptrace.conf(ควรมีอยู่แล้ว), เปลี่ยนค่าของkernel.yama.ptrace_scopeไปแล้วโหลดการกำหนดค่า:0sudo sysctl -p

ฉันโพสต์การแก้ปัญหาชั่วคราวอย่างชัดเจนเนื่องจากคุณอาจไม่ต้องการปิดการใช้งานคุณสมบัตินี้ในเครื่องปกติด้วยเหตุผลด้านความปลอดภัย


4

ฉันมีปัญหาเดียวกันขณะที่เรียกใช้โครงการในเทอร์มินัล เพียงยกเลิกการเลือก (หรือทำเครื่องหมาย - เรียกใช้ - ยกเลิกการทำเครื่องหมายหากไม่ได้ทำเครื่องหมายด้วยเหตุผลใดก็ตาม) กล่อง "Run in terminal" ใน "โครงการ" (บนแถบด้านซ้าย) - แท็บ "Run" - "Run"


ขอบคุณสิ่งนี้ได้ผลสำหรับฉันการดีบักตอนนี้เริ่มต้นในแอปพลิเคชัน QTCreators เอาท์พุต
squareborg

การออกเสียงลงคะแนนนี้เพราะมันเป็นทางออกที่ง่ายที่สุดถ้าคุณไม่ต้องการเห็นผลลัพธ์เทอร์มินัลจากแอปพลิเคชันของคุณ
Rob Davies

0

คุณสามารถเปลี่ยนความสามารถของ gdb ด้วย

sudo setcap cap_sys_ptrace=eip /usr/bin/gdb

ความสามารถของมนุษย์บอกได้ว่า cap_sys_ptrace ให้สิทธิ์

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

ดูเพิ่มเติม cap_from_text คน

นี่เป็นวิธีการแก้ปัญหาที่ไม่ได้ถูกลบออกโดยการรีบูต แต่มันก็ไม่ปลอดภัยอย่างสมบูรณ์ ฉันเปิดให้คำแนะนำวิธีการทำอย่างถาวรและปลอดภัย


-4

เพียงแค่เปิด QtCreator ผ่าน Terminal ด้วยการอนุญาต root มันใช้งานได้สำหรับฉัน

sudo qtcreator

มันเผยให้เห็นช่องโหว่ขนาดใหญ่
enedil
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.