Mengapa saya tidak bisa menggunakan utilitas pemrograman GNU Debugger (GDB) pada Mac sebagai pengguna standar?

8

Saya hanya bisa menggunakan GNU Debugger (GDB) ketika dikonfirmasi sebagai administrator.

Ketika saya meluncurkan GDB sebagai pengguna standar, setelah memberikan perintah GDB "jalankan", dialog meminta saya untuk nama pengguna dan kata sandi pengguna dalam grup "Alat Pengembang".

Masalahnya adalah saya sudah berada di grup "Alat Pengembang", jadi saya tidak tahu harus berbuat apa lagi ...

Terima kasih!

Peron:

  • MacOS X 10.7.1
  • GCC 4.2.1
  • i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Berdasarkan Apple Inc. build 5658) (LLVM build 2335.15.00)
  • GNU gdb 6.3.50-20050815 (Versi Apple gdb-1705)
  • GDB ini dikonfigurasi sebagai "x86_64-apple-darwin".
Pietro
sumber

Jawaban:

7

Apakah Anda yakin berada dalam grup Alat Pengembang?

Coba jalankan perintah ini

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

Itu harus menambahkan akun pengguna Anda ke grup.

serai
sumber
Sekarang saya tahu bahwa grup yang ditampilkan di GUI bukan yang asli ;-) Terima kasih!
Pietro
2

Saya memiliki masalah yang sama, itu tidak akan berjalan, kecuali sebagai root? / Sudo, yang berarti saya tidak bisa menggunakannya dengan gerhana, yang berarti saya kehilangan 5 jam kerja untuk debugging masalah. Inilah hasil saya.

Pertama, gdb menghasilkan pesan kesalahan serupa ketika dieksekusi di bawah akun pengguna saya.

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

Saya mencoba menandatangani kode dengan membuat sertifikat menggunakan Keychain, lalu menandai sertifikat sebagai tepercaya untuk penandatanganan kode. Kemudian menerapkannya ke executable dari baris perintah.

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

Itu tidak berhasil

Saya mencoba menambahkan akun pengguna saya ke grup procview, procmod, dan _developer (mungkin tidak aman, tapi saya hanya menggunakan kode saya untuk github, dan tidak menggunakan mesin untuk penggunaan pribadi, jadi saya bisa hidup dengan itu)

sudo dscl . append /Groups/procmod GroupMembership bryanhunt

sudo dscl . append /Groups/procview GroupMembership bryanhunt

sudo dscl . append /Groups/_developer GroupMembership bryanhunt

Itu tidak berhasil

Akhirnya, saya mencoba mengubah grup executable dan sticky bit.

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

Itu berhasil

picsolve_binarytemple
sumber
tidak peduli apa yang saya lakukan, saya mendapatkan kesalahan di bawah ini. Apa pun yang Anda mungkin tahu untuk membantu saya. 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