自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序猿Ricky的日常干货

学而不思则罔,思而不学则殆! (xiehaocheng127@163.com)

  • 博客(4)
  • 资源 (4)
  • 收藏
  • 关注

原创 内核中的插桩调试

插桩法是内核常用的一种调试手段,利用代码中插桩,执行到此时执行对应的钩子函数(hook)来达到调试的目的,从实现来说,它不可避免的会带来一些性能上的开销,不过随着实现的不断优化,这部分的开销已经越来越小了。比如使能了 dynamic ftrace 后的内核,在关闭 ftrace 开关的情况下,实际上只是多了个几个 nop 指令,并不会带来很大的性能开销。下面就来看下内核中都有哪几种常用的插桩调试机制。ftrace 我在其他博客中有介绍过,它的原理是使用 gcc 编译器的 -pg 选项,达到在内核代码中插桩

2020-05-15 18:02:25 2205

原创 crash常用的调试命令

我的crash常用命令如下所示:log/dmesg: 打印出故障现场的kmsg缓冲区log_buf中的内容。struct:展示结构体的定义,或者从指定的地址开始解析一个结构体。union:与struct类似,但是用于union的展示p:print查看某个变量的值,实际上是调用gdb的p命令whatis:展示结构体、联合体等定义bt <pid>:展示调用堆栈信息,如果不加参数...

2020-05-08 11:07:25 9488

原创 内核中堆栈溢出检测之VMAP_STACK特性

在Linux-4.14之前,Linux内核栈都是位于线性映射区,该区域对应的虚拟地址和物理地址具有一个固定的偏移,并且是在系统刚启动是进行过pre-mapped,因此内核在使用时不需要另外做页表映射。在2016年的时候内核引入了vmap_stack机制,它是采用vmalloc申请的内存作为内核栈的一种机制。只需要使能 CONFIG_VMAP_STACK 配置选项即可打开该功能。这个功能带来了如下...

2020-05-07 14:15:55 2504

原创 Linux cma内存的使用

CMA的全称叫做contiguous memory allocator,它是为了便于进行连续物理内存申请的一块区域,一般我们把这块区域定义为reserved-memory。早期的Linux内核中没有cma的实现,如果驱动想要申请一个大块的物理连续内存,那么只能通过预留专属内存的形式,然后在驱动中使用ioremap来映射后作为私有内存使用。这样带来的后果就是有一部分内存将被预留出来不能作为系统中的...

2020-05-06 14:54:22 6685

linux gtk hello test

gtk hello world,test for gtk lib

2016-01-14

linux v4l2 camera config

linux v4l2 camera config

2016-01-14

v4l2 camera capture and config

linux系统下的camera capture和camera config实例

2015-08-17

linux v4l2 camera capture

v4l2接口,camera capture实例,合法合规!

2003-07-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除