Tại sao tôi không thể sử dụng tiện ích lập trình GNU Debugger (GDB) trên Mac như một người dùng chuẩn?


8

Tôi chỉ có thể sử dụng Trình gỡ lỗi GNU (GDB) khi được xác thực là quản trị viên.

Khi tôi khởi chạy GDB với tư cách là người dùng chuẩn, sau khi cho lệnh GDB "chạy", một hộp thoại yêu cầu tôi nhập tên người dùng và mật khẩu của người dùng trong nhóm "Công cụ dành cho nhà phát triển".

Vấn đề là tôi đã thuộc nhóm "Công cụ dành cho nhà phát triển", vì vậy tôi không biết phải làm gì khác ...

Cảm ơn bạn!

Nền tảng:

  • MacOS X 10.7.1
  • GCC 4.2.1
  • i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Dựa trên Apple Inc. bản dựng 5658) (bản dựng LLVM 2335.15.00)
  • GNU gdb 6.3.50-20050815 (Phiên bản Apple gdb-1705)
  • GDB này được định cấu hình là "x86_64-apple-darwin".

Câu trả lời:


7

Bạn có tích cực không, bạn thuộc nhóm Công cụ dành cho nhà phát triển?

Hãy thử chạy lệnh này

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

Điều đó sẽ thêm tài khoản người dùng của bạn vào nhóm.


Bây giờ tôi biết rằng các nhóm được hiển thị trong GUI không phải là nhóm thực sự ;-) Cảm ơn bạn!
Pietro

2

Tôi có cùng một vấn đề, nó sẽ không chạy, ngoại trừ root? / Sudo, điều đó có nghĩa là tôi không thể sử dụng nó với nhật thực, điều đó có nghĩa là tôi đã mất 5 giờ làm việc để gỡ lỗi. Đây là kết quả của tôi.

Đầu tiên, gdb tạo ra một thông báo lỗi tương tự khi được thực thi trong tài khoản người dùng của tôi.

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

Tôi đã thử ký mã bằng cách tạo chứng chỉ bằng Keychain, sau đó đánh dấu chứng chỉ là đáng tin cậy để ký mã. Sau đó áp dụng nó để thực thi từ dòng lệnh.

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

Điều đó đã không làm việc

Tôi đã thử thêm tài khoản người dùng của mình vào các nhóm Procview, procmod và _developer (có thể không an toàn, nhưng tôi chỉ triển khai mã của mình cho github và không sử dụng máy cho mục đích cá nhân, vì vậy tôi có thể sống với điều đó)

sudo dscl . append /Groups/procmod GroupMembership bryanhunt

sudo dscl . append /Groups/procview GroupMembership bryanhunt

sudo dscl . append /Groups/_developer GroupMembership bryanhunt

Điều đó đã không làm việc

Cuối cùng, tôi đã thử thay đổi bit dính của nhóm và nhóm thực thi.

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

Điều đó đã làm việc


bất kể tôi làm gì, tôi nhận được lỗi dưới đây. Bất cứ điều gì mà bạn có thể biết để giúp tôi. 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.