调试XCode中作为根(Debugging in XCode as root)

2019-06-23 23:30发布

在我的计划,我需要创建套接字并绑定他们听HTTP端口(80)。 该程序工作正常,当我使用sudo启动它的命令行,升级权限来根。 的XCode下运行给出了一个“权限被拒绝”的错误在调用绑定功能(ASIO :: IP :: TCP ::受体:: bind的())。

我怎么能下的XCode调试?

所有的C ++和Boost.Asio的用的XCode 3.1.2完成在Mac OS X 10.5。

Answer 1:

更新版 :对的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用户,他的回答是要走的路。



Answer 2:

在Xcode 4.5 产品 - > 编辑方案 :寻找下调试过程中的信息选项卡并选择root选项。



Answer 3:

Xcode是能够运行调试应用程序的根。 为此应完成以下步骤:

  1. 打开本地计算机的根用户。

    一个。 运行“目录实用工具”(/系统/图书馆/ CoreServices /目录Utility.app)

    湾 选择“启用Root用户”从编辑菜单,然后输入root密码。

  2. 启用远程登录电子。

    一个。 在系统偏好设置 - >共享,选中远程登录。 此选项打开了SSH恶魔。

  3. 创建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密码。

  4. 使得能够经由在Xcode SSH远程调试。

    一个。 从«可执行文件»下拉菜单中选择«获取信息»。

    湾 在“调试”设置检查«调试可执行远程通过ssh»,把根@ localhost作为«连接»信息。

  5. 现在一切都应该是好☺

来自博客



Answer 4:

XCode中不再支持远程调试渲染大多数这些答案过时。

为了调试程序的根现在很容易。 在产品菜单中,使用“编辑计划...”并在“运行”方案“信息”窗格中,选择“调试过程根”。 你将不得不进行一次认证。

由于的Xcode 4.5我有一个奇怪的错误,直到我很Xcode和重新启动。



Answer 5:

调试经由SSH根。

编辑主动可执行文件 - >调试 - >调试通过SSH远程执行。



Answer 6:

如果你想调试Web服务器端口443上运行,则可以改为在端口8443上您的正常帐户运行它,然后做了:sudo的SSH用户@本地-L 443:本地主机:8443 -N

然后,你还可以联系你正确的端口上的应用程序,但是执行应用程序作为一个普通用户的优势。



文章来源: Debugging in XCode as root