Re: [問題] debug + trace code

看板AndroidDev作者 (小安)時間12年前 (2012/05/11 21:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ 引述《yshihyu (yshihyu)》之銘言: : 目前工作是做android 手機 , 在實體手機開發,編譯後image燒到手機裡面 : 我是弄 kernel & driver 部分, 我目前都用 kernel log 訊息在trace code & debug : 但是有點麻煩是常常需要編譯好在燒到手機,之後再操作產生log 訊息 : 在分析log ... 每一次都花費15~20分鐘 非常耗費時間 : 不知道大家都是怎麼做的? : 像我這種情況可以用gdb 除錯嗎? : 實體手機(target) ~ 電腦(host) 之間有辦法使用gdb嗎? : 謝謝 我目前工作中有一部份內容跟你差不多, 也一直很想知道 gdb 是否能用在 Android Kernel 上, 不過一直沒有成功。 講一下我目前的狀況: 1. 使用 module 我比較需要關注的 driver 等,我會修改自己 local 端的 code,使其成為 module, 需要 debug 時就可以修改後只編譯該 module。 2. Kprobe 有點像是 hook 的感覺,寫一個 module 並註明自己關注的 function, 載入後每次執行該 function 之前就會先執行 module 中的 pre_handler, 另外也可取得參數等資料。 3. FTrace 取得指定 function 的 call graph 等資訊。 不過我個人使用時經常發生當機狀況,不確定是否是我這邊機子的問題。 猜測使用 uart 時會好一點。 4. kgdb, kgtp 等 這邊是我一直沒頭緒的部份。 不過由於我只能從 usb 透過 adb 進行操作, 我猜測這種情況下需要解決的問題可能會更多, 也許使用 uart 比較有機會。 5. debugfs, kernel module parameters 如果要追的不是自己人寫的 code (?), 其實系統中很多地方都有埋下方便 debug 的設計, 有時候只要開啟對應的 kernel config, 就會多印出很多訊息或長出 debugfs, 我從以前就一直對 kernel 很不熟, 如果有說錯的地方還請不吝指正。 如果還有其他好用工具也希望能順便指點一下 :p -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.78.231
文章代碼(AID): #1FhHJUsA (AndroidDev)