2014年1月16日
摘要: 第二章 驱动程序调测方法与技巧驱动程序开发的一个重大难点就是不易调试。本文目的就是介绍驱动开发中常用的几种直接和间接的调试手段,它们是:利用printk查看OOP消息利用strace利用内核内置的hacking选项利用ioctl方法利用/proc 文件系统使用kgdb一、利用printk这是驱动开发中最朴实无华,同时也是最常用和有效的手段。scull驱动的main.c第338行如下,就是使用printk进行调试的例子,这样的例子相信大家在阅读驱动源码时随处可见。338 // printk(KERN_ALERT "wakeup by signal in process %d\n&quo 阅读全文
posted @ 2014-01-16 18:40 眼里的圈圈 阅读(3871) 评论(0) 推荐(1) 编辑
摘要: 1 使用kthread_create创建线程: struct task_struct *kthread_create(int (*threadfn)(void *data), void *data, const char *namefmt, ...);这个函数可以像printk一样传入某种格式的线程名 线程创建后,不会马上运行,而是需要将kthread_create() 返回的task_struct指针传给wake_up_process(),然后通过此函数运行线程。2. 当然,还有一个创建并启动线程的函数:kthread_run struct task_struc... 阅读全文
posted @ 2014-01-16 17:08 眼里的圈圈 阅读(5489) 评论(0) 推荐(0) 编辑
  2013年12月13日
摘要: 最近有位 VPS 客户抱怨 MySQL 无缘无故挂掉,还有位客户抱怨 VPS 经常死机,登陆到终端看了一下,都是常见的 Out of memory 问题。这通常是因为某时刻应用程序大量请求内存导致系统内存不足造成的,这通常会触发 Linux 内核里的 Out of Memory (OOM) killer,OOM killer 会杀掉某个进程以腾出内存留给系统用,不致于让系统立刻崩溃。如果检查相关的日志文件(/var/log/messages)就会看到下面类似的 Out of memory: Kill process 信息:...Out of memory: Kill process 9682 阅读全文
posted @ 2013-12-13 16:16 眼里的圈圈 阅读(17657) 评论(0) 推荐(0) 编辑
  2013年1月31日
摘要: 假设交换机A的前23个端口连接着23台计算机,这些mac地址是A1到A23;交换机A的第24口和交换机B的第1个端口进行级联,那么,在系统mac地址学习完成后,在交换机B的工作表中,A1到A23这23个mac地址都是和第1个端口相关联的。 另外,交换机B中并不保存交换机A内部地址表中A1到A23这23个mac地址和交换机A的哪个端口相对应的关系,交换机B只要知道凡是目的mac地址在A1到A23之中任意一个的,全部发往自己的1号端口。 阅读全文
posted @ 2013-01-31 17:50 眼里的圈圈 阅读(1051) 评论(0) 推荐(0) 编辑
  2012年10月17日
摘要: 1. 使用ulimit -a,查看core文件的信息。 core file size,这一行为0,则表示关闭了此功能,不会生成core文件。2. 打开core dump。在当前编译的终端,使用ulimit -c unlimited命令,允许当前生成没有大小限制的core file.(unlimited也可以为生成core文件的大小,单位为kbyte.)3. 当程序crash退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。4. 利用gdb查看core $ gdbexe-file core.xxxx 进去后使用bt或者where,查看出错地方。 注意:待调试 阅读全文
posted @ 2012-10-17 13:24 眼里的圈圈 阅读(430) 评论(0) 推荐(0) 编辑
  2012年8月3日
摘要: WAV格式中常见的压缩编码(compression code)WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持,该格式也支持MSADPCM,CCITT A LAW等多种压缩运算法,支持多种音频数字,取样频率和声道。标准格式化的WAV文件采样频率为44100Hz,采样比特为16bit,因此标准的(这里说标准,只是一种广泛采用的波形音频方案)WAV文件和CD音频格式一样,也是44.1KHz的取样频率,16位量化 阅读全文
posted @ 2012-08-03 18:14 眼里的圈圈 阅读(13291) 评论(0) 推荐(0) 编辑
摘要: 转自:http://blog.csdn.net/c0ffee1982/article/details/1892309wav文件格式分析详解2007年06月25日 星期一 上午 09:53一、综述 WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个字节便是“RIFF”。 WAVE文件是由若干个Chunk组成的。按照在文件中的出现位置包括:RIFF WAVEChunk, Format Chunk, Fact Chunk(可选), Data Chunk。具体见下图: 阅读全文
posted @ 2012-08-03 17:58 眼里的圈圈 阅读(593) 评论(0) 推荐(0) 编辑
  2012年7月21日
摘要: Makefile自动依赖Makefile生成自动依赖的方法有两种:1. 将所有.o文件的依赖关系写入单独文件,然后在Makefile中调用该文件2. 每个.c文件对应一个.d文件,将依赖关系写入.d文件中一、对于第一种方法,Makefile的写法如下:#file startCC = gccSRCS := $(wildcard *.c)OBJS := $(patsubst %.c,%.o, $(SRCS))all: main main: $(OBJS) $(CC) -o main $(OBJS).depend: $(SRCS) @$(CC) -MM $(SRCS) > $@sinclude 阅读全文
posted @ 2012-07-21 10:28 眼里的圈圈 阅读(7115) 评论(0) 推荐(0) 编辑
  2012年4月21日
摘要: The mutex passed to pthread_cond_wait protects the condition.The callerpasses it locked to the function, which then atomically places themcalling thread on the list of threads waiting for the condition andunlocks the mutex. This closes the window between the time that thecondition is checked and the 阅读全文
posted @ 2012-04-21 11:00 眼里的圈圈 阅读(430) 评论(0) 推荐(0) 编辑
  2012年3月15日
摘要: 转自:http://blog.csdn.net/fmddlmyy/article/details/1510193浅谈文字编码和Unicode(上)我曾经写过一篇《谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词》(以下简称《谈谈Unicode编码》),在网上流传较广,我也收到不少朋友的反馈。本文探讨《谈谈Unicode编码》中未介绍或介绍较少的代码页、Surrogates等问题,补充一些Unicode资料,顺带介绍一下我最近编写的一个Unicode工具:UniToy。本文虽然是前文的补充,但在写作上尽量做到独立成篇。标题中的“浅谈”是对自己的要求,我希望文字能尽量浅显易懂。 阅读全文
posted @ 2012-03-15 15:31 眼里的圈圈 阅读(2879) 评论(0) 推荐(0) 编辑