在我的程序中,我需要创建套接字并将它们绑定到侦听HTTP端口(80).当我从命令行使用sudo启动它时,该程序工作正常,将权限升级到root.在XCode下运行会在调用绑定函数时出现"权限被拒绝"错误(asio :: ip :: tcp :: acceptor :: bind()).
如何在XCode下进行调试?
全部使用XCode 3.1.2在Mac OS X 10.5上使用C++和boost.asio完成.
更新:对于Xcode 4.5及更高版本,请参阅此答案.
我知道你要做的唯一方法是以root身份运行Xcode.
>> sudo /Developer/Applications/Xcode.app/Contents/MacOS/Xcode
一旦以root身份运行,从Xcode启动的任何进程也将以root身份运行.但请注意,如果您创建或编辑任何文件,它们将归root所有,这意味着您必须chown
先将它们作为普通用户进行编辑.
我喜欢Xcode说"以root身份启动进程"的方法,但据我所知,没有这样的功能可用.
请注意,您还可以在命令行调试器中运行应用程序gdb
以调试应用程序.跑
>> sudo gdb /path/to/my/application
然后你可以保持Xcode打开,随意修改,并在gdb中调试你的程序.这就是我一般所做的.
编辑:未来的读者:见亚历山大斯塔沃宁的回答; 它谈到了如何做到这一点.如果您对ssh密钥没问题并在系统上启用root用户,那么他的答案是可行的.
在Xcode 4.5中Product- > Edit Scheme:在Debug Process As下的Info选项卡中查找并选择root选项.
Xcode能够以root身份运行调试应用程序.为此,应执行以下步骤:
为本地计算机启用root用户.
一个.运行"目录实用程序"(/ System/Library/CoreServices/Directory Utility.app)
湾 从"编辑"菜单中选择"启用Root用户",然后输入root密码.
启用远程登录.
一个.在系统偏好设置... - >共享中,选中远程登录.这个选项打开了ssh恶魔.
在root用户的.ssh/authorized_keys文件夹中创建ssh公钥/私钥并复制公钥.
一个.在本地机器上打开终端并键入ssh-keygen -t rsa
湾 接受默认位置并键入root用户密码.
C.以root身份登录su -
并创建〜/ .ssh目录.(〜==/var/root)
d.将公钥复制到根目录:cat ~/.ssh/id_rsa.pub | ssh root@localhost "cat - >> ~/.ssh/authorized_keys"
即 检查一切是否正常.类型ssh root@localhost
.它不应该要求root密码.
在Xcode中通过ssh启用远程调试.
一个.从«可执行文件»的下拉菜单中选择«获取信息».
湾 在"调试"设置中,检查«通过ssh远程调试可执行文件»并将root @ localhost作为«连接到»信息.
现在一切都应该好了☺
来自博客