この主題には、完全に1か所の優れたドキュメントがないようです。
これが解決策のない参考文献です。LinuxカーネルとAndroidプラットフォームでデバッグとトレースを行う方法について、誰かが彼の知識を提供できますか?
この主題には、完全に1か所の優れたドキュメントがないようです。
これが解決策のない参考文献です。LinuxカーネルとAndroidプラットフォームでデバッグとトレースを行う方法について、誰かが彼の知識を提供できますか?
The traditional method (which I use most of the time) is to simply add printk to the relevant sections of the code, and then read the code and fix whatever the problem is once you have narrowed it down. I believe this is generally what MOST kernel developers do (certainly all 6 of my colleagues in my team, and the five-six that work in a different group). [I work with Linux on PC's, not in Android devices, but it's essentially the same kernel...]
I'm sure kgdb can be used in some way, but it relies on having a suitable port (e.g. serial or ethernet) to connect the debugger via, serial is hard to find on modern PC's, and don't exist at all in mobile phones. Ethernet will be fine, but most mobile phones (and other Android platforms) tend to only have WiFi, and as far as I understand, that requires a whole other lot of software on top of the regular IP stack to make it work right. I don't beleive kgdb supports wifi.
Sorry I can't give you a better answer. [I see from your links that you didn't exactly find a good answer...]
Edit: However, maybe this will help at least sometimes: http://bootloader.wikidot.com/android:kgdb
I write Linux device drivers for android. Using adb is the first choice tool for android developers. You can get the kernel logs using "adb shell cat /proc/kmsg" command. If you are working on a platform which provides a serial terminal, you can get these kernel logs from that. Using printk and kernel log is only tool I use to debug kernel code.
You can mount debugfs and get hardware specific information.
Android comes with a set of tools like stack utility to get stack traces, etc. I know there is not much documentation for android platform developers out there. Most documentation is for app development.