为什么我不能以标准用户的身份在Mac上使用GNU调试器(GDB)编程实用程序?


8

经过管理员身份验证后,我才能使用GNU调试器(GDB)

当我以标准用户身份启动GDB时,在给GDB命令“运行”后,将出现一个对话框,要求我提供“开发人员工具”组中用户的用户名和密码。

问题是我已经在“开发人员工具”组中,所以我不知道该怎么办...

谢谢!

平台:

  • 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”。

Answers:


7

您确定要加入“开发人员工具”小组吗?

尝试运行此命令

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

那应该将您的用户帐户添加到组中。


现在我知道GUI中显示的组不是真实的组;-)谢谢!
Pietro

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.