Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调试Android开源操作系统_Android_Debugging_Open Source_Operating System - Fatal编程技术网

调试Android开源操作系统

调试Android开源操作系统,android,debugging,open-source,operating-system,Android,Debugging,Open Source,Operating System,我希望在构建和运行开源Android操作系统时,能够放置断点,并查看调用堆栈、单步代码。我还可能希望在Dalvik VM中进行调试。操作系统是使用make构建的,所以我想我需要使用gdb。我只能找到关于如何操作的过时说明。是否有人在Android操作系统中进行过调试,或者找到了最新的相关说明?不要使用emulator,这会浪费您宝贵的时间。 买一部安卓手机,调试会像你喜欢的那样快速和简单。当然 只要有EclipseIDE,就很容易。您只需在调试中运行程序,然后转到DDMS选项卡 一些有助于您的链

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

不要使用emulator,这会浪费您宝贵的时间。 买一部安卓手机,调试会像你喜欢的那样快速和简单。

当然

只要有EclipseIDE,就很容易。您只需在调试中运行程序,然后转到DDMS选项卡

一些有助于您的链接:

编辑:
我想你必须下载并编译Android源代码。此链接可能会对您有所帮助:

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


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

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

如果您不是以root用户身份运行,则只能调试以用户身份运行的进程,您可以说服这些进程运行gdbserver-即,您使用adb启动的进程,或者使用run-as工具对使用调试标志集构建并具有Internet权限(用于gdb gdbserver通信)的应用程序进程进行调试


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

谢谢,是的,我有一部手机,但我不知道如何使用它设置调试。谢谢你的提示-虽然我不想调试应用程序,但我希望在Android操作系统本身,以及可能的Dalvik VM中进行调试。我使用“make”来构建操作系统,所以我想我需要使用gdb,但不确定如何使用?编辑了答案,希望它能帮助YouTunks,尽管我实际上已经通过了这一点。我只需要弄清楚如何附加一个调试器:)谢谢你的提示,虽然我不想调试一个应用程序,但我想调试的是Android操作系统本身,可能还有Dalvik VM。我使用“make”来构建操作系统,所以我想我需要使用gdb,但不知道如何设置。hm thx的提示!如果我的构建配置指定了“用户调试”,文档表明这提供了根访问权限。希望这能起作用(否则我的手机还没有根)。