在Android平台上调试Linux内核代码

时间:2012-12-24 22:31:10

标签: android c linux-kernel arm kgdb

似乎这个主题没有一个完整的一个地方文档。

以下是没有任何解决方案的参考资料。任何人都可以贡献他的知识,如何在Linux内核和Android平台上调试和跟踪。

一些链接

2 个答案:

答案 0 :(得分:4)

传统的方法(我大部分时间都在使用)是简单地将printk添加到代码的相关部分,然后读取代码并在修改问题后解决问题。我相信这通常是MOST内核开发人员所做的事情(当然我团队中的所有6位同事,以及在不同组中工作的5位6位同事)。 [我在PC上使用Linux,而不是在Android设备上,但它基本上是相同的内核...]

我确定kgdb可以以某种方式使用,但它依赖于有一个合适的端口(例如串行或以太网)来连接调试器,串口很难在现代PC上找到,并且不存在于所有在手机上。以太网将会很好,但大多数手机(和其他Android平台)往往只有WiFi,据我所知,这需要在常规IP堆栈之上安装其他许多软件才能使其正常工作。我不相信kgdb支持wifi。

抱歉,我不能给你一个更好的答案。 [我从你的链接中看到你并没有找到一个好的答案......]

编辑:但是,这可能至少有时会有所帮助: http://bootloader.wikidot.com/android:kgdb

答案 1 :(得分:2)

我为Android编写Linux设备驱动程序。使用adb是Android开发人员的首选工具。您可以使用“adb shell cat / proc / kmsg”命令获取内核日志。如果您正在使用提供串行终端的平台,则可以从中获取这些内核日志。使用printk和内核日志只是我用来调试内核代码的工具。

您可以挂载debugfs并获取特定于硬件的信息。

Android附带了一组工具,比如堆栈实用程序,以获取堆栈跟踪等。我知道Android平台开发人员没有太多文档。大多数文档用于应用程序开发。