Android深度探索第十章總結

來源:互聯網
上載者:User

標籤:

學習第十章,也就是嵌入式Linux的調試技術。主要介紹如何利用開發板、Android模擬器以及一些函數、工具(gdb、gdbserver以及kgdb)調試嵌入式Linux核心模組、可執行程式和共用庫。1、列印核心調試資訊:printk。Printk函數用法與printf函數類似,只不過printk函數運行在核心空間,printf函數運行在使用者空間,printk函數在printk.c檔案中實現。不管訊息層級是多少,所有通過printk函數發出的訊息都會輸出到記錄檔(就算有的訊息輸出到控制台,也會同時輸出到記錄檔)。可以通過如下的命令查詢日誌。2、防止printk函數降低Linux驅動效能。雖然使用printk函數可以很方便地將訊息寫入記錄檔或控制台。但大量使用printk函數頻繁動作記錄問阿金或控制台裝置檔案會嚴重影響Linux驅動的效能。因此,這就要求Linux驅動只在開發階段使用printk函數輸出訊息,在正式發布Linux驅動時將可能影響效能的printk函數去掉。最好的方法無疑是利用C語言中的編譯指令。(#if、#else、#endif等)。如果不想使用printk輸出訊息,只要將#if中的1改為0即可不使用printk輸出訊息。3、通過虛擬檔案系統(/pron)進行資料互動。/pron用來作為核心空間與使用者空間進行資料互動的工具。/pron是虛擬檔案系統,是記憶體映射,所有讀寫/pron的操縱都是對記憶體的讀寫,所以,它也可以作為Linux驅動與使用者空間程式互動的工具。/pron檔案系統主要通過proc_dir_entry.read_proc和proc_dir_entry.read_write函數指標來設定讀寫/pron目錄中的虛擬檔案的動作處理函數,proc_dir_entry結構體代表一個虛擬目錄或檔案。4、調試工具。Linux系統中提供了一類工具,這些工具可以逐行跟蹤程式的代碼分別是:用於調試使用者空間程式的gdb、gdbserver和調試核心空間程式的kgdb。gdb調試使用者空間程式,它可以跟蹤調試使用者空間的程式,但是它只能在PC上進行測試。gdbserver遠端偵錯使用者空間程式,用gdbserver 可以測試回合在開發板、手機或Android模擬器上的程式。gdbserver是一個可以運行在ARM架構上的服務端程式,在開發板上使用gdbserver開啟要測試的程式,然後通過串口、有線或無線網路可以在PC上進行調試。kgdb遠端偵錯核心程式。它提供類似printk函數的複製輸出功能,允許開發人員直接在PC上通過GDB連結目標裝置。

Android深度探索第十章總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.