ทำไมฉันไม่สามารถใช้ยูทิลิตีการเขียนโปรแกรม GNU Debugger (GDB) บน Mac ในฐานะผู้ใช้มาตรฐานได้?


8

ฉันสามารถใช้GNU Debugger (GDB)เมื่อผ่านการตรวจสอบสิทธิ์ในฐานะผู้ดูแลระบบเท่านั้น

เมื่อฉันเรียกใช้ GDB ในฐานะผู้ใช้มาตรฐานหลังจากให้คำสั่ง GDB "run" ไดอะล็อกจะขอชื่อผู้ใช้และรหัสผ่านของผู้ใช้ในกลุ่ม "เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์" ให้ฉัน

ปัญหาคือฉันอยู่ในกลุ่ม "เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์" แล้วดังนั้นฉันไม่ทราบว่าจะต้องทำอะไรอีก ...

ขอบคุณ!

แพลตฟอร์ม:

  • MacOS X 10.7.1
  • GCC 4.2.1
  • i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (อ้างอิงจาก Apple Inc. build 5658) (LLVM build 2335.15.00)
  • GNU gdb 6.3.50-20050815 (รุ่น Apple gdb-1705)
  • GDB นี้ได้รับการกำหนดค่าเป็น "x86_64-apple-darwin"

คำตอบ:


7

คุณคิดว่าคุณอยู่ในกลุ่มเครื่องมือสำหรับนักพัฒนาหรือไม่?

ลองใช้คำสั่งนี้

sudo dscl . append /Groups/_developer GroupMembership <username>

ควรเพิ่มบัญชีผู้ใช้ของคุณในกลุ่ม


ตอนนี้ฉันรู้แล้วว่ากลุ่มที่แสดงใน GUI ไม่ใช่กลุ่มจริง ;-) ขอบคุณ!
เปียโตร

2

ฉันมีปัญหาเดียวกันมันจะไม่ทำงานยกเว้นในฐานะ root หรือไม่ / sudo ซึ่งหมายความว่าฉันไม่สามารถใช้กับ eclipse ได้ซึ่งหมายความว่าฉันเสียเวลาทำงาน 5 ชั่วโมงในการดีบักปัญหา นี่คือผลลัพธ์ของฉัน

ประการแรก gdb สร้างข้อผิดพลาดที่คล้ายกันเมื่อดำเนินการภายใต้บัญชีผู้ใช้ของฉัน

Unable to find Mach task port for process-id 4667: (os/kern) failure (0x5).
 (please check gdb is codesigned - see taskgated(8))

ฉันลองใช้รหัสโดยการสร้างใบรับรองโดยใช้ Keychain จากนั้นทำเครื่องหมายใบรับรองว่าเชื่อถือได้สำหรับการเซ็นชื่อรหัส จากนั้นนำไปใช้กับไฟล์สั่งการจากบรรทัดคำสั่ง

codesign -s gdb-cert /usr/local/Cellar/gdb/7.6.1/bin/gdb
codesign --verify --verbose  /usr/local/Cellar/gdb/7.6.1/bin/gdb
codesign -d --verbose  /usr/local/Cellar/gdb/7.6.1/bin/gdb

นั่นไม่ได้ผล

ฉันพยายามเพิ่มบัญชีผู้ใช้ของฉันไปยังกลุ่ม procview, procmod และ _developer (อาจไม่ปลอดภัย แต่ฉันปรับใช้รหัสของฉันกับ gitub และไม่ใช้เครื่องเพื่อการใช้งานส่วนตัวเพื่อให้ฉันสามารถอยู่กับมันได้)

sudo dscl . append /Groups/procmod GroupMembership bryanhunt

sudo dscl . append /Groups/procview GroupMembership bryanhunt

sudo dscl . append /Groups/_developer GroupMembership bryanhunt

นั่นไม่ได้ผล

ในที่สุดฉันพยายามเปลี่ยนกลุ่มของบิตและกลุ่มที่สามารถใช้งานได้

sudo chgrp procmod /usr/local/Cellar/gdb/7.6.1/bin/gdb
sudo chmod g+s /usr/local/Cellar/gdb/7.6.1/bin/gdb

ที่ได้ผล


ไม่ว่าฉันจะทำอะไรฉันได้รับข้อผิดพลาดด้านล่าง อะไรก็ได้ที่คุณอาจรู้เพื่อช่วยฉัน Starting program: /Users/nakulchawla/POPL/proj5/a.out Unable to find Mach task port for process-id 571: (os/kern) failure (0x5). (please check gdb is codesigned - see taskgated(8))
thenakulchawla
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.