Macで標準ユーザーとしてGNUデバッガ(GDB)プログラミングユーティリティを使用できないのはなぜですか?


8

管理者として認証された場合のみ、GNUデバッガー(GDB)を使用できます。

GDBを標準ユーザーとして起動すると、GDBコマンドに「run」を指定した後、「Developer Tools」グループのユーザーのユーザー名とパスワードを要求するダイアログが表示されます。

問題は、すでに「開発者ツール」グループに属しているため、他に何をすべきかわかりません...

ありがとうございました!

プラットホーム:

  • MacOS X 10.7.1
  • GCC 4.2.1
  • i686-apple-darwin11-llvm-gcc-4.2(GCC)4.2.1(Apple Inc.ビルド5658に基づく)(LLVMビルド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))

キーチェーンを使用して証明書を作成し、証明書にコード署名用の信頼できるものとしてマークを付けて、コード署名を試みました。次に、コマンドラインから実行可能ファイルに適用します。

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グループに追加してみました(おそらく安全ではありませんが、コードをgithubにデプロイするだけで、マシンを個人用に使用しないので、それで生活できます)。

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 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.