【问题标题】:Debugging Android open-source OS [closed]调试 Android 开源操作系统 [关闭]
【发布时间】:2011-10-20 04:22:15
【问题描述】:

我希望能够在构建和运行开源 Android 操作系统时放置断点、查看调用堆栈、逐步执行代码。我还可能想在 Dalvik VM 中进行调试。操作系统是使用 make 构建的,所以我认为我需要使用 gdb。我只能找到有关如何执行此操作的过时说明。有没有人设法在 Android 操作系统中进行调试,或者找到最新的说明?

【问题讨论】:

    标签: android debugging open-source operating-system


    【解决方案1】:

    如果您以 root 身份运行(模拟器中的正常情况,可能在开发手机上或通过可能消费者手机上的安全漏洞),您可以将 gdb(实际上是 gdbserver)附加到几乎任何已经运行的用户空间进程。请注意,如果暂停任何有用的时间长度,许多事情可能会反应不佳。

    如果您不是以 root 身份运行,则只能调试以您可以说服运行 gdbserver 的用户身份运行的进程 - 即,您使用 adb 启动的进程,或使用运行为工具的应用程序进程设置了调试标志并具有 Internet 权限(用于 gdb-gdbserver 通信)。

    如果你想调试内核,你需要弄清楚如何让 kgdb 工作,或者更可能只是在有趣的地方加载 printk。这当然需要能够重建和重新安装内核。

    【讨论】:

    • hm thx 的提示!如果我的构建配置指定“用户调试”,则文档表明这提供了 root 访问权限。希望这可行(否则我还没有植根我的手机..)。
    【解决方案2】:

    不要用模拟器,浪费你宝贵的时间。 获取一部安卓手机,调试将如你所愿一样快速简单。

    【讨论】:

    • 谢谢,是的,我有手机,但我不知道如何设置调试。
    【解决方案3】:

    这取决于您的桌面情况,但可以通过增加emulator RAM 来改进模拟器。不是很好,但会改进。

    要在您的设备上进行调试,请使用 USB 数据线将其连接到您的计算机。当您通过 Eclipse 运行项目时,它会提示您选择在哪个设备/模拟器上运行,在这种情况下您选择您的手机。然后,您将切换到 Debug 透视图。

    【讨论】:

    • 感谢您的提示,尽管我不是要调试应用程序,而是要调试 Android 操作系统本身,可能还有 Dalvik VM。我使用'make'来构建操作系统,所以我认为我需要使用gdb,但不知道如何设置它。
    【解决方案4】:

    当然。

    只要您有 Eclipse IDE,这很容易。您只需在调试中运行程序并转到 DDMS 选项卡。

    一些对你有帮助的链接:

    http://www.droidnova.com/debugging-in-android-using-eclipse,541.html

    http://developer.android.com/guide/developing/debugging/index.html

    编辑: 我想您将不得不为您的目的下载和编译 Android 源代码。此链接可能会对您有所帮助:http://source.android.com/source/initializing.html

    【讨论】:

    • 感谢您的提示 - 尽管我不是要调试应用程序,而是要在 Android 操作系统本身中调试,并且可能在 Dalvik VM 中。我使用'make'来构建操作系统,所以我认为我需要使用 gdb,但不确定如何?
    • 编辑了答案,希望对你有帮助
    • 谢谢,虽然我实际上已经通过了这一点。我只需要弄清楚如何附加调试器:)
    猜你喜欢
    • 1970-01-01
    • 2011-09-18
    • 2010-09-20
    • 1970-01-01
    • 2010-12-04
    • 2011-04-08
    • 2018-10-19
    • 2011-01-03
    • 2012-07-11
    相关资源
    最近更新 更多