Linux内核调试工具: Crash - 编码要求
Linux内核的crash调试工具主要用于内核core dump之后的事后分析。前几篇博客涉及到了crash的一些使用。本篇文章主要介绍如何给crash的社区提交patch,社区的编码要求和测试环境的搭建。
This article was firstly published from http://oliveryang.net. The content reuse need include the original link.
Crash coding notes
1. Where could I found coding examples?
See crash whitepaper, Command Extensions section. This document also has crash command usages and a case study for kernel debugging.Please study it carefully before working on crash.
2. Public APIs defined in defs.h
Crash public APIs are defined in defs.h.
- Don not change existing APIs in defs.h
- The code changes in defs.h should not break the 3rd party crash extension source code build
- If changes can be put into private files, don not change in defs.h
- Make code changes in defs.h as simple as possible.
3. Other coding and testing guidelines
Run “make warn” to fix all warnings.
It would be better, if variables, APIs, and CLI output naming could reflect kernel data structure naming.
CLI changes should also add man page changes in help.c
Test must be done on both 32 and 64 bit kernels
Per your code changes, need to consider the test on different kernel versions
If you don not have enough test resources, please discuss with maintainer to leverage community test resources.
Before sending out the patch, please make sure your changes is on top of latest upstream patch
4. Build and test environment setup
Make sure you had installed following packages. I used Fedora CLIs as examples.
Basic development tools
sudo yum -y groupinstall “Development Tools”
patch
sudo yum install -y patch
ncurses-devel
sudo yum install -y ncurses-devel
zlib-devel
sudo yum install -y zlib-devel
bison and byacc
yum install -y bison
yum install –y byacckernel debug info packages, if required.
for 64 bit x86 kernel,
debuginfo-install kernel
for 32 bit x86 kernel,
debuginfo-install kernel-PAE
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)