在我的计划,我需要创建套接字并绑定他们听HTTP端口(80)。 该程序工作正常,当我使用sudo启动它的命令行,升级权限来根。 的XCode下运行给出了一个“权限被拒绝”的错误在调用绑定功能(ASIO :: IP :: TCP ::受体:: bind的())。
我怎么能下的XCode调试?
所有的C ++和Boost.Asio的用的XCode 3.1.2完成在Mac OS X 10.5。
在我的计划,我需要创建套接字并绑定他们听HTTP端口(80)。 该程序工作正常,当我使用sudo启动它的命令行,升级权限来根。 的XCode下运行给出了一个“权限被拒绝”的错误在调用绑定功能(ASIO :: IP :: TCP ::受体:: bind的())。
我怎么能下的XCode调试?
所有的C ++和Boost.Asio的用的XCode 3.1.2完成在Mac OS X 10.5。
更新版 :对的Xcode 4.5及更高版本,看到这个答案吧。
我知道做什么你问的唯一方法是运行了Xcode作为根。
>> sudo /Developer/Applications/Xcode.app/Contents/MacOS/Xcode
一旦你以root运行,在Xcode推出什么过程也将作为root运行。 但是请注意,如果您创建或编辑任何文件,他们将被root所有,这意味着你必须chown
他们之前,你可以为你的普通用户第一次对其进行编辑。
我很乐意为Xcode中说“发射过程根”的方式,但据我所知,没有这样的功能是可用的。
请注意,您也可以运行命令行调试器中的应用gdb
调试应用程序。 跑
>> sudo gdb /path/to/my/application
然后,你可以保持Xcode中打开,随意修改和gdb中调试程序。 这是我一般做。
编辑 :从未来的读者:看从亚历山大Stavonin答案; 它谈论如何做到这一点。 如果您能够接受SSH密钥和使您的系统上的root用户,他的回答是要走的路。
在Xcode 4.5 产品 - > 编辑方案 :寻找下调试过程中的信息选项卡,并选择root选项。
Xcode是能够运行调试应用程序的根。 为此应完成以下步骤:
打开本地计算机的根用户。
一个。 运行“目录实用工具”(/系统/图书馆/ CoreServices /目录Utility.app)
湾 选择“启用Root用户”从编辑菜单,然后输入root密码。
启用远程登录电子。
一个。 在系统偏好设置 - >共享,选中远程登录。 此选项打开了SSH恶魔。
创建SSH公钥/私钥,并在根用户的.ssh / authorized_keys的文件夹中复制公钥。
一个。 本地机器和类型开端子ssh-keygen -t rsa
湾 接受对根的默认位置和类型的密码。
C。 以root身份登录su -
和创建〜/ .ssh目录。 (〜==的/ var /根)
d。 公钥复制到根: cat ~/.ssh/id_rsa.pub | ssh root@localhost "cat - >> ~/.ssh/authorized_keys"
cat ~/.ssh/id_rsa.pub | ssh root@localhost "cat - >> ~/.ssh/authorized_keys"
即 检查是否一切正常。 键入ssh root@localhost
。 它不应该问的root密码。
使得能够经由在Xcode SSH远程调试。
一个。 从«可执行文件»下拉菜单中选择«获取信息»。
湾 在“调试”设置检查«调试可执行远程通过ssh»,把根@ localhost作为«连接»信息。
现在一切都应该是好☺
来自博客
XCode中不再支持远程调试渲染大多数这些答案过时。
为了调试程序的根现在很容易。 在产品菜单中,使用“编辑计划...”并在“运行”方案“信息”窗格中,选择“调试过程根”。 你将不得不进行一次认证。
由于的Xcode 4.5我有一个奇怪的错误,直到我很Xcode和重新启动。
调试经由SSH根。
编辑主动可执行文件 - >调试 - >调试通过SSH远程执行。
如果你想调试Web服务器端口443上运行,则可以改为在端口8443上您的正常帐户运行它,然后做了:sudo的SSH用户@本地-L 443:本地主机:8443 -N
然后,你还可以联系你正确的端口上的应用程序,但是执行应用程序作为一个普通用户的优势。