作者sxwdce123 (阿强)
看板Programming
标题[问题] IPC kernel module错误问题
时间Fri Oct 3 22:04:43 2014
介绍:我这个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
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://webptt.com/cn.aspx?n=bbs/Programming/M.1412345086.A.B9D.html
把Send函式 这行改成这样就行了
struct msghdr msg= {.msg_flags= MSG_DONTWAIT+MSG_NOSIGNAL};
※ 编辑: sxwdce123 (59.127.3.127), 10/09/2014 17:11:28