易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux的oops内核调试信息

      Oops可以看成是内核级的Segmentation Fault。应用程序如果进行了非法内存访问或执行了非法指令,会得到Segfault信号,一般的行为是coredump,应用程序也可以自己截获Segfault信号,自行处理。如果内核自己犯了这样的错误,则会打出Oops信息。处理器使用的所有地址几乎都是通过一个复杂的页表结构对物理地址映射而得到的虚拟地址(除了内存管理子系统自己所使用的物理地址)。当一个非法的指针被废弃时,内存分页机制将不能为指针映射一个物理地址,处理器就会向操作系统发出一个页故障信号。如果地址不合法,那么内核将不能在该地址“布页”;这时如果处理器处于超级用户模式,内核就会生成一条oops消息。
      解释一下它所产生的过程:
1,do_page_fault()(arch/i386/mm/fault.c)。如果是内核进行了非法访问,do_page_fault()会先打出EIP, PDE等信息,例如:
Unable to handle kernel paging request at virtual address f899b670
printing eip:
c01de48c
*pde = 00737067
然后调用 die("Oops", regs, error_code);这之后,如果系统还活着(至少要满足两个条件:1. 在进程上下文 2. 没有设置panic_on_oops),会杀死当前进程,导致死机。
2,die()(arch/i386/kernel/traps.c)。die() 首先打出一行:
Oops: 0002 [#1]
其中0002代表错误码,#1代表Oops发生次数。error_code:
 *      bit 0 == 0 means no page found, 1 means protection fault
 *      bit 1 == 0 means read, 1 means write
 *      bit 2 == 0 means kernel, 1 means user-mode
然后,调用 show_registers(regs) 输出寄存器、当前进程、堆栈、指令代码等信息,以供判断。


相关文档:

linux ping 命令详解





功能说明:检测主机。
语  法:ping
[-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载
入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]
补充说明:执行ping指令会使用ICMP传输协议,发出要求回应的 ......

Linux多线程编程

Linux
多线程编程:【
http://fanqiang.chinaunix.net/a4/b8/20010811/0905001105.html

    
Linux
多线程支持
POSIX
线程接口,称为
pthread,
    
pthread_create
用来创建线程,
pthread_join
等待线程结束,函数的原型分别如下:
 
  &nbs ......

Socket编程:由Linux向Windows移植问题


转自:http://www.cic.tsinghua.edu.cn/jdx/book1/CHAPTER3.htm
 
在源文件开始增加#include <winsock.h>语句。
调用WSAStartup()函数初始化Windows Sockets DLL,并在结束时调用WSACleanup()函数通知Windows Sockets DLL释放资源。
将套接字的类型为int改为SOCKET。
获取、设置错误码不要使用全局变量er ......

linux 下 用c语言创建mysql数据库笔记(一)

linux 下 用c语言创建mysql数据库笔记(一)
     
-----仅为个人学习摘要,并不断更新中。。。。
在引用头文件时必须包含‘mysql.h’的头文件(必须是mysql.h的绝对地址,一般在mysql下的include目录下,仔细看看你的在哪里?*),
我是ubuntu9。04,在/usr/include/mysql/mysql ......

Linux下把kernel空间映射到用户进程空间(mmap实现)

 在mmap函数里,使用remap_pfn_range
函数。代码如下。注意要设置一下vma->vm_pgoff为你要map的io空间的物理地址对应的页。
arm  IO/ 内存统一编址  所以
#define io_remap_pfn_range(vma,from,pfn,size,prot) \
             &nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号