在SIMICS软件里面模拟最新的CPU进行虚拟化测试的时候,先把Dave的kernel patches拿到手,打补丁到v4.1-rc2上,每次启动qemu-kvm的时候,console上就打印了一堆信息,然后panic了,信息简略如下: [crayon-5da6465a87a64708947511/] 先是反汇编内核,看到了出问题的地方,在kvm_cpu_vmxon函数上,它就是汇编执行vmx...

工作环境正式切换到ubuntu下,之前使用SLES进行开发和服务器版本,如此可以直接下载debuginfo的rpm(比如glibc debuginfo)进行调试,suse都是有对应链接提供好的,但当前切换的ubuntu下就找不到哪里有debug版本的deb下载,网上各种介绍手工编译,一个包还好,多个包就太麻烦了,正要感慨ubuntu不适合进行服务器开发,却...

Jprobe在之前经常使用用来对内核流程中的函数挂钩子,劫持相关参数,进行debug调试分析。 但在内核调试中经常碰到需要监视的模块数据,而这些数据往往在很多函数中修改,需要程序员人工从大量的内核代码中过滤出这些函数,使用jprobe就需要监控每个函数的入口,涉及的内容比较复杂,而且很多时候的函数符号并没有导出,...

gdb主要功能的实现依赖于一个系统函数ptrace,通过man手册可以了解到,ptrace可以让父进程观察和控制其子进程的检查、执行,改变其寄存器和内存的内容,主要应用于打断点(也是gdb的主要功能)和打印系统调用轨迹。 一、ptrace函数 函数原型如下: [crayon-5da6465a8874b897988387/] ptrace系统调用的request主要...

很多情况下开发者调测程序需要在Linux下获取具体的IO的状况,目前常用的IO观察工具用vmstat和iostat,具体功能上说当然是iostat更胜一筹,在IO统计上时间点上更具体精细。但二者都是在全局上看到IO,宏观上的数据对于判断IO到哪个文件上毫无帮助,这个时候block_dump的作用就显现出来了。 一、使用方法: 需要先停掉sy...

在平台升级中经常碰到自测时性能指标没有问题,而平台转到产品业务部门匹配测试时就出了问题.如果是功能异常的问题,一般还是很好处理的,但如果碰到系统的性能问题,如CPU升高,内存使用超标,就比较不好搞了,老虎吞天,没有目标,一个版本几十万行代码一行行看,绝对能累死,尤其是内核组. 幸好开源界的风气好,提供了各种工具...