4. 设置、测试和运行 crash

4.1. 设置 crash dump

为了保存写入交换空间的 core 镜像,必须在启动过程中重新挂载交换空间之前保存该镜像。为了实现这一点,需要修改sysinit启动文件。 lkcd 源码包含一个scripts目录,其中包含各种 sysinit 启动脚本的补丁。 这些补丁添加了 lkcd configlkcd save 命令,以启用 crash dumps 并在启动时保存任何现有的 crash dumps。

4.2. 测试 crash

要强制 panic 以测试您新设置的 crash,请使用 cc -c -I/usr/src/linux/include panic.c 编译以下代码。 构建panic.o模块后,只需 insmod panic.o 即可使内核 panic。

  ### panic.c ###########################

  #define __KERNEL__
  # MODULE 

  # include init_module(void)

  int init_module (void)
  {
      panic(" panic has been called");
      return 0;
  }
      

4.3. 运行 crash

要查看您的内核 core 文件,需要使用几个参数调用 lcrash

  lcrash [ System.map file ] [ dump image ] [ Kerntypes ]

  Example:

  lcrash /boot/System.map ./dump.1 /boot/Kerntypes
      

需要一分钟才能将内核镜像加载到内存中,并将您带入 crash shell。 在 crash shell 提示符下,您可以键入?查看可用的命令。