sk_buff 目录 1 sk_buff介绍 2 sk_buff组成 3 struct sk_buff结构体 4 sk_buff成员变量 4.1 Layout布局 4.2 General通用 4.3 Feature-specific功能相关 5 sk_buff管理和操作函数 5.1缓冲区操作函数sk... ...
分类:
系统相关 时间:
2016-04-23 15:00:51
阅读次数:
329
sysrq 【用途】 Sysrq被称为”魔术组合键”, 是内建于Linux内核的调试工具。只要内核没有完全锁住,不管内核在做什么事情,使用这些组合键都可以搜集包括系统内存使用、CPU任务处理、进程运行状态等系统运行信息。 【原理】【内核帮助文档kernel/Documentation/sysrq.t ...
分类:
系统相关 时间:
2016-04-23 15:01:06
阅读次数:
190
还可以使用read命令读取Linux系统上的文件。 每次调用read命令都会读取文件中的"一行"文本。当文件没有可读的行时,read命令将以非零状态退出。 读取文件的关键是如何将文本中的数据传送给read命令。 ...
分类:
系统相关 时间:
2016-04-23 14:59:39
阅读次数:
177
bugreport 【用途】Android性能分析工具,bugreport记录了Android启动过程日志,启动后的系统状态,包括进程列表、内存信息、VM信息等 【使用方法】 Adb bugreport > bugreport.txt (导出bugreport信息) 【日志分析】 (1)dumpst ...
分类:
系统相关 时间:
2016-04-23 14:58:27
阅读次数:
255
ptrace 【用途】 进程跟踪器,类似于gdb watch的调试方法 【原理】【详细说明参考man ptrace帮助文档】 ptrace系统调用主要是父进程用来观察和控制子进程的执行过程、检查并替换子进程执行序列或者寄存器值的一种手段。主要用于实现断点调试和跟踪系统调用。 【接口说明】 #incl ...
分类:
系统相关 时间:
2016-04-23 14:57:42
阅读次数:
194
死锁问题分析 死锁就是多个进程(线程)因为等待别的进程已占有的自己所需要的资源而陷入阻塞的一种状态,死锁状态一旦形成,进程本身是解决不了的,需要外在的推动,才能解决,最重要的是死锁不仅仅影响进程业务,而且还会占用系统资源,影响其他进程。所以内核中设计了内核死锁检测机制,一旦发现死锁进程,就重启OS, ...
分类:
系统相关 时间:
2016-04-23 14:57:31
阅读次数:
296
Jprobes 【用途】 类似于Kprobes和Return Probes,区别在于,Kprobes可以在任意指令处插入探针,Jprobes只在函数入口插入探针,而Return Probes则是在函数返回时插入探针。 【接口说明】【参考samples/kprobes/jprobe_example.c ...
分类:
系统相关 时间:
2016-04-23 14:55:49
阅读次数:
225
Linux内核通知链notifier 1.内核通知链表简介(引用网络资料) 大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求,也即是让某个子系统在发生某个事件时通知其它的子系统,Linux内核提供了通知链的机制。通知链表只能够在内核的子系统之间使用,而 ...
分类:
系统相关 时间:
2016-04-23 14:52:05
阅读次数:
322
本系列主要介绍Linux内核死机、异常重启类稳定性问题的调试方法。 在Linux系统中,一切皆为文件,而系统运行的载体,是一类特殊的文件,即进程。因此,我尝试从进程的角度分析Linux内核的死机、异常重启等问题。在内核空间,内核本身是一个特权级的进程,它包含一系列系统级线程,维护整个系统内核的运转。 ...
分类:
系统相关 时间:
2016-04-23 14:52:02
阅读次数:
259
转自:http://harttle.com/2015/11/04/vim-ide.html 一年前我从Vim切换到了WebStorm,是因为WebStorm强大的重构功能,以及Super Search功能。涉及多文件编辑和重构时WebStorm的优势便非常明显。 最近到手了HHKB,从键盘到触摸板的 ...
分类:
系统相关 时间:
2016-04-23 14:52:40
阅读次数:
278
backtrace 【用途】用户态或者内核态程序异常退出时回溯堆栈信息 【原理】通过对当前堆栈的分析,回溯上层函数在当前栈中的帧地址,直至顶层函数。帧地址是指在栈中存在局部变量、上一级函数返回地址、寄存器值的内存空间。由于不同处理器堆栈实现不同(向上增长和向下增长),此功能的具体实现是编译器内建的_ ...
分类:
系统相关 时间:
2016-04-23 14:51:13
阅读次数:
351
ftrace 【用途】 ftrace包含一系列跟踪器,用于不同的场合,比如跟踪内核函数调用(function tracer)、跟踪上下文切换(sched_switch tracer)、查看中断被关闭的时长(irqsoff tracer)、跟踪内核中的延迟以及性能问题等。Ftrace是内建于Linux ...
分类:
系统相关 时间:
2016-04-23 14:49:34
阅读次数:
243
ltrace 【用途】 库文件调用跟踪器,Linux内核内建命令,用法类似strace 【命令格式】 【参数说明】【详细说明参考man ltrace帮助文档】 -D 打印调试信息 01-DEBUG_GENERAL 010-DEBUG_EVENT 020-DEBUG_PROCESS 040-DEBUG ...
分类:
系统相关 时间:
2016-04-23 14:47:58
阅读次数:
223
【用途】 Linux内核动态调试特性,适用于驱动和内核各子系统调试。动态调试的主要功能就是允许你动态的打开或者关闭内核代码中的各种提示信息。适用于驱动和内核线程功能调试。 【使用方法】 依赖于CONFIG_DYNAMIC_DEBUG内核配置选项,一旦设置好,那么所有pr_debug()/dev_de ...
分类:
系统相关 时间:
2016-04-23 14:48:54
阅读次数:
239
可以使用 getpass 这个函数,无回显的密码,为什么无回显,因为Linux的开发者一般认为不回显比显示为*更安全(比如当密码只有一两位长度的时候,设置为*几乎没有一点安全性)。 char *getpass( const char *prompt); 另外,getpass函数是遗留的,推荐使用设置 ...
分类:
系统相关 时间:
2016-04-23 14:47:18
阅读次数:
237
dumpsys 【用途】Android系统提供的dumpsys工具可以用来查看系统服务信息与状态。 【使用说明】 adb shell dumpsys <service> [<option>] 【常用服务解释】 编号 服务名称 功能 1 account 显示accounts信息 2 activity ...
分类:
系统相关 时间:
2016-04-23 14:45:54
阅读次数:
397
本文介绍的内核调试宏属于静态调试方法,通过调试宏主动触发oops从而打印出函数调用栈信息。 1) BUG_ON 查看bug处堆栈内容,主动制造oops Linux中BUG_ON,WARN_ON用于调试,比如 #define BUG_ON(condition) do { / if (unlikely( ...
分类:
系统相关 时间:
2016-04-23 14:42:46
阅读次数:
205