当前位置:  技术问答>linux和unix

关于用户态程序ioctl调用内核模块接口

    来源: 互联网  发布时间:2017-01-06

    本文导语:  有一个内核模块和一个用户态程序, 用户态程序通过ioctl调用模块中的接口。 内核模块中有一个switch case结构来区分用户态的请求以确定调用相应接口。 这个switch case比较大,大概有100多个case分支。 目前遇到问...

有一个内核模块和一个用户态程序, 用户态程序通过ioctl调用模块中的接口。 内核模块中有一个switch case结构来区分用户态的请求以确定调用相应接口。 这个switch case比较大,大概有100多个case分支。
目前遇到问题:用户态程序调用接口时会使内核崩溃, 提示是内核地址错误什么的。 
目前已做过的调试方法:怀疑case过多, 去掉一些case分支, 用户态程序短时间(比如半个小时)重复调用某些接口时正常, 但长时间 (比如2小时以上) 重复调用也会出现内核崩溃。 
(注:模块中的接口应该是没有问题的,运行过程中内存消耗正常。 程序运行环境是嵌入式设备)

大家有没有遇到过这种情况? case分支过多会不会引发这种情况,还是只是假象?  对linux内核编程不熟悉, 请大家帮帮忙,  谢谢!

|
是你的代码有bug,跟case多少无关。

|
支持 1楼的观点 绝对是bug。

|
看一下有没有内存泄露的地方吧。

|
肯定和case无关了,不过你case也是太多了点,看着这么多不会头晕的。

内核崩溃关键是看内核打印的 OOPS消息的堆栈 ,分析出错在哪里了。你这什么都没有。

肯定是你内核模块的问题了。

|

ty

|


赞~~~本总也是如此看法。

“目前遇到问题:用户态程序调用接口时会使内核崩溃, 提示是内核地址错误什么的。”
以我的经验,这是你用户态和内核态两边,定义的传送数据结构不一致引起的。

    
 
 

您可能感兴趣的文章:

  • Linux进程的内核栈和用户栈概念,相互关系及切换过程
  • 求内核和用户态简单易行的通信方法,用户态只需得到一个内核模块参数
  • 内核栈~ 内核线程 ~用户线程 之间关系 问题
  • 内核空间能否调用用户空间程序?
  • 在内核的某个函数中,如何能知道是哪个用户空间的函数调用了它,以及这个用户空间函数所在的文件?
  • linux 用户态和内核态
  • daemon 是属于 用户态编程 还是 内核态编程? 关于内核编程的书/资料介绍些好吗?
  • 请问内核空间和用户空间有什么区别,是怎么划分的.谢谢
  • 用户模式和内核模式
  • 用户态程序如何和多个内核模块进行同时数据交互??
  • 关于内核进程和用户层命令不是很理解?
  • 内核访问用户空间
  • linux用户空间到内核空间数据传递
  • 关于内核空间和用户空间之间的实时通信?
  • 用户层的数据怎么传输到内核层呢?谢谢!
  • 如何利用Linux内核线程来保存用户进程
  • :(关于用户态和内核态不懂,帮帮忙啊。
  • 用户空间的程序如何改成运行于内核的?
  • 内核进程与用户进程间的通信
  • 用户空间如何访问内核变量。
  • 内核与用户进程通信得问题,求助!
  • 内核调用用户态函数的问题
  • 如何修改内核 来控制用户空间的程序 的系统调用.
  • 用户态调用除0错中断的问题
  • 如何在用户态调用内核态的函数?
  • Asp.Net其他页面如何调用Web用户控件写的分页
  • 以普通用户的身份登陆到unix,能不能调用shell执行特定的操作?
  • 在用户程序中怎样调用内核函数?
  • 在linux kernel 里添加了系统调用,如何在用户程序中调用添加的系统调用呢?急
  • c#通过进程调用cmd判断登录用户权限代码分享
  • 问:系统调用的原理,一个C函数怎么就把系统功能提供给了用户程序呢?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 使用非root用户加载模块出错
  • 请问模块如何与用户程序进行数据交换
  • 自己写的内核模块与用户模块通信(交互)
  • 内核模块如何与用户进程进行通信??
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 概念混乱,请专人解释:实际用户ID,有效用户ID,设置用户ID
  • UIO(linux Userspace I/O子系统)用户空间设备驱动I/O技术介绍
  • proftp中,如何让FTP的用户是非Linux用户,只是FTP用户?
  • CentOS安装Telnet,以root用户登陆Telnet以及CentOS的各种终端解释
  • windows 系统是否是多用户操作系统,如何理解“多用户操作系统”的“多用户”?
  • 我装的是RED HAT LINUX 8.0,我在root用户中把root用户删除了,怎办也进不了root用户
  • 怎样让普通用户拥有超级用户的权限,是把普通用户的组设为root组吗?具体怎么做,急死了
  • 我一个服务器同时接受到很多个用户的认证请求(得到用户名和密码),然后把用户名密码发给认证服务器。因为是远程认证,所
  • 我装了中软Linux3.1,启动时要求输入用户名和口令,但安装时并没有提示指定用户名,所以现在输入用户名老是错误,不能进入系统,请问该怎
  • root用户附权限给其他用户问题
  • 如何添加一个用户,让这个用户只能访问某个特定的目录,
  • 如何过滤系统用户只显示创建的用户?
  • 匿名用户登录nobody用户的作用
  • 怎样在程序中将普通用户切换成root用户
  • 创建用户组创建用户出错
  • 求助:忘记了root用户的密码,如何给普通用户赋root权限
  • 请教用户组和用户的问题
  • Public key用户 创建的用户不能登录
  • 利用root用户修改一般用户密码的批处理文件怎么写呢?
  • **********如何在UNIX上创建一个用户,此用户只能访问自己的目录***********


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3