[問題] IPC kernel module 除錯

看板LinuxDev作者 (阿強)時間10年前 (2014/10/04 19:34), 10年前編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/1
介紹:我這個IPC module會使用kernel網路傳輸的API 與 另一台電腦作相連、也與本機 上層的管理應用程式相連。 問題描述:IPC kernel module執行傳輸到網路上會無法傳出(使用send function)、或是 socket與上層AP相連時,也會無法傳出。 這個程式碼現在是沒問題的,但是只要將 binder.c 3999、3283行 ,任一行註 解掉之後就會產生傳輸錯誤。3999、3283行在編譯後為變成printk。 備註:之前在開發的過程就有遇過,只是那時候是變成需要註解掉 prink 這樣傳輸才沒有問題。 1. 請問這樣的錯誤是為什麼發生的? 記憶體不夠用嗎、編譯問題、我寫法錯誤 、網路傳輸不能直接在kernel寫 2. 是否有什麼方式 可以查看 執行到這邊的狀態? ex:kgdb、objdump kgdb之前有用過,可是使用起來怪怪的、也不太會trace 不知如何trace到使用socket API 的module內容 使用環境: Ubuntu 12.04.3 LTS Linux ubuntu 3.9.0-030900-generic #201304291257 SMP Mon Apr 29 17:06:25 UTC 2013 i686 i686 i386 GNU/Linux gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) Source Code https://www.dropbox.com/s/xf3p83wh361q07l/module.rar?dl=0 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.72.239 ※ 文章網址: http://www.ptt.cc/bbs/LinuxDev/M.1412422486.A.571.html

10/07 13:19, , 1F
原來你也是鄉民~我昨天在Linkedin看到一樣的問題 @@
10/07 13:19, 1F

10/07 13:20, , 2F
Line175: #define debug 0 試試看呢?
10/07 13:20, 2F
感謝回復,已經找到問題點了 把Send函式 這行改成這樣就行了 struct msghdr msg= {.msg_flags= MSG_DONTWAIT+MSG_NOSIGNAL}; ※ 編輯: sxwdce123 (59.127.3.127), 10/09/2014 17:10:47
文章代碼(AID): #1KBzjMLn (LinuxDev)
文章代碼(AID): #1KBzjMLn (LinuxDev)