首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

linux设备驱动程序第四部分:从如何定位oops对代码的调试方法,驱动线「建议收藏」

在一个我们谈到了如何编写一个简单的字符设备驱动程序,我们不是神,编写肯定会失败的代码,在这个过程中,我们需要继续写代码调试。在普通c应用。我们经常使用printf输出信息。或者使用gdb要调试程序,然后司机如何调试它?的问题,在应用程序中执行这样的程序就会报segmentation fault的错误,而因为驱动程序的特殊性,出现此类情况后往往会直接造成系统宕机。并会抛出oops信息。那么我们怎样来分析oops信息呢,甚至依据oops信息来定位详细的出错的代码行呢?以下就依据一个简单的实例来说明怎样调试驱动程序。

01

CentOS中基于不同版本安装重复包的解决方案

在更新 PHP 版本的时候,出现了NOKEY的错误提示后,暂时没有解决掉这个问题,于是就手动安装了php-mbstring...rpm  包的高版本,这样在接下来的错作中就出现了错误信息:The program package-cleanup is found in the yum-utils package. 什么是yum-utils: yum-utils are tools for manipulating repositories and extended package management. It is a collection of tools and programs for managing yum repositories, installing debug packages, source packages, extended information from repositories and administration.  yum-utils package includes: debuginfo-install - install debuginfo packages and their dependencies package-cleanup - manage package cleanup, duplicates, orphaned packages and outstanding dependency problems repo-graph - outputs a full package dependency list in dot format repo-rss - generates an RSS feed from one or more repositories repoclosure - reads metadata of repositories, checks dependencies and displays list of unresolved dependencies repodiff - takes two or more repositories, returns a list of added, removed or changed packages repomanage - manages a directory of rpm packages, returns a list of newest or oldest packages in a directory repoquery - query yum repositories and get additional information on the them reposync - synchronize a remote yum repository to a local directory using yum to retrieve packages repotrack - track packages and its dependencies and downloads them yum-builddep - installs missing dependencies to build a specified package yum-complete-transaction - finds incomplete or aborted yum transactions and attempts to complete them yum-installed - print a compact package list making use of comps groups yumdownloader - downloads packages from yum repositories including source RPMs 出现这句话说明清除程序包存在并在yum-utils套件包里找到了,看不出安装存在问题。存在不兼容问题的话一般是用yum安装一些rpm packages时候会出现missing dependency error,会有error提示的。 解决办法: yum install yum-utils yum-complete-transaction --cleanup-only 清除可能存在的重复包 package-cleanup --dupes 清除可能存在的损坏包 package-cleanup --problems 清除重复包的老版本: package-cleanup --cleandupes package-cleanup 帮助信息如下: options: -h, --help show th

03

package-cleanup

为什么这么说呢? 卸载deb包时候,可以连不要的依赖关系包一起删除,但是多如牛毛的rpm却不可以。 这个真的是rpm的痛! yum仅仅能在线安装rpm,但是只能在安装的时候解决依赖关系,卸载的时候却不行。 不过,有个工具可以专门解决rpm依赖关系:package-cleanup Options:   -h, --help           show this help message and exit   --problems           List dependency problems in the local RPM database   --leaves             List leaf nodes in the local RPM database   --all                When listing leaf nodes also list leaf nodes that are                        not libraries   --orphans            List installed packages which are not available from                        currenly configured repositories.   -q, --quiet          Print out nothing unecessary   -y                   Agree to anything asked   -d, --dupes          Scan for duplicates in your rpmdb   --cleandupes         Scan for duplicates in your rpmdb and cleans out the                        older versions   --oldkernels         Remove old kernel and kernel-devel packages   --count=KERNELCOUNT  Number of kernel packages to keep on the system                        (default 2)   --keepdevel          Do not remove kernel-devel packages when removing                        kernels   -c CONFFILE          config file location Please specify either --problems, --leaves, --orphans or --oldkernels 例如,你不小心安装了gnome-games,然后马上把这个卸载。你会发现只卸载了gnome-games,那些“包庇”gnome-games的“同党”还留在你的硬盘里! 这时,你输入:package-cleanup --leaves 就会列出一系列的关系包,都是在rpm数据库里没有被依赖的依赖包。 把这些包统统remove,你的硬盘从此干净了。

01
领券