zoukankan      html  css  js  c++  java
  • Linux内核调试工具: Crash

    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 byacc

    • kernel debug info packages, if required.

      for 64 bit x86 kernel,

      debuginfo-install kernel

      for 32 bit x86 kernel,

      debuginfo-install kernel-PAE

  • 相关阅读:
    js实现分享到QQ
    js 复制粘贴
    js弹窗 js弹出DIV,并使整个页面背景变暗
    PHP实现大转盘抽奖算法
    ext 树节点操作
    ExtJS4图片验证码的实现
    随笔分类
    Oracle、MySql、SQLServer 数据分页查询
    Repeater控件使用(含删除,分页功能)
    SQL compute by 的使用
  • 原文地址:https://www.cnblogs.com/ainima/p/6330790.html
Copyright © 2011-2022 走看看