SlideShare a Scribd company logo
1 of 19
Download to read offline
Linux Kernel Debugging

                       quot;Oopsquot;, Now What?


                      Ross Mikosh & James Washer
Linux Technology
Center
Outline

                    Types of Problems
                    Tools
                    Error and Debug Messages
                    Handling Failures
                    Kernel Investigation
                    Handling a System Crash
                    Oops Analysis Example
                    LKCD/Lcrash
                    More Information




Linux Technology
Center
Tools
                   Debuggers
                     gdb
                     kdb
                     others?
                   Built-In
                     Oops data upon a panic/crash
                   Dump Facility
                     Linux® Kernel Crash Dump - lkcd
                   Linux Trace Toolkit
                     ltt
                   Custom Kernel Instrumentation
                     dprobes
                   Special console functions
                     Magic SysReq key

Linux Technology
Center
Error/Debug Messages


                    System error logs
                      /var/log/*
                      dmesg
                    Syslog
                    Console
                    Application or Module debug level




Linux Technology
Center
Handling Failures
                    System Crash
                      Collect and analyze oops/panic data
                      Collect and analyze dump with lkcd
                    System Hang
                      Use Magic SysReq key
                      NMI invoking a dump using lkcd
                      S/390 - invoke a stand-alone dump




Linux Technology
Center
Kernel Investigation

                   Debuggers
                     Gdb and /proc/kcore
                     Remote kernel debugging - gdb & serial connection
                     Kdb
                   Lcrash on running system
                   Adding printk's in the kernel
                   Programming a debug module or a new /proc file
                   Appropriate for customer/production environment ?




Linux Technology
Center
Handling a System Crash


                    Occurs when a critical system failure is detected
                    Kernel routines call die()
                      Attempts to report/record system state
                      Information is limited
                    Better to have an entire system memory dump
                      LKCD project on SourceForge
                      Thorough analysis and investigation can be done




Linux Technology
Center
Panic/Oops Analysis

                   Steps
                     Collect oops output, System.map, /proc/ksyms, vmlinux, /proc/modules
                     Use ksymoops to interpret oops
                        Instructions is /usr/src/linux/Documentation/oops-tracing.txt
                        Ksymoops(8) man page
                        Be Careful...

                   Brief analysis
                     Ksymoops disassembles the code section
                     The EIP points to the failing instruction
                     The call trace section shows how you got there
                        Caution: Noise on the stack?

                   How to find failing line of code?


Linux Technology
Center
Oops Example
Unable to handle kernel NULL pointer dereference at virtual address 00000000
c2483069       <--- EIP (Instruction Pointer or Program Counter)
 *pde = 00000000
Oops: 0000
 CPU:      0
 EIP:      0010:[ipv6:__insmod_ipv6_O/lib/modules/2.4.10-4GB/kernel/net/ipv6
                  ipv6+-472895383/96]
 EFLAGS: 00010283
 eax: db591f98       ebx: de2aeb60    ecx: de2aeb80   edx: c2483060
 esi: 00000c00       edi: d41d0000    ebp: db591f5c   esp: db591f4c
 ds: 0018       es: 0018   ss: 0018
 Process cat (pid: 1986, stackpage=db591000)
 Stack: c012ca65 000001f0 ffffffea 00000000 00001000 c014e878 d41d0000 db591f98
        00000000 00000c00 db591f94 00000000 de2aeb60 ffffffea 00000000 00001000
        deae6f40 00000000 00000000 00000000 c01324d6 de2aeb60 0804db50 00001000
 Call Trace: [__alloc_pages+65/452] [proc_file_read+204/420] [sys_read+146/200]
[system_call+51/64]
 Code: a1 00 00 00 00 50 68 10 31 48 c2 e8 67 38 c9 fd 31 c0 89 ec
Ksymoops output

                   Using defaults from ksymoops -t elf32-i386 -a i386


                   Code;    00000000 Before first symbol
                   00000000 <_EIP>:
                   Code;    00000000 Before first symbol
                       0:     a1 00 00 00 00                      mov    0x0,%eax
                   Code;    00000004 Before first symbol
                       5:     50                                  push   %eax
                   Code;    00000006 Before first symbol
                       6:     68 10 31 48 c2                      push   $0xc2483110
                   Code;    0000000a Before first symbol
                       b:     e8 67 38 c9 fd                      call   fdc93877
                   <_EIP+0xfdc93877> fdc93876 <END_OF_CODE+1e1fa3d8/????>
                   Code;    00000010 Before first symbol
                     10:      31 c0                               xor    %eax,%eax
                   Code;    00000012 Before first symbol
                     12:      89 ec                               mov    %ebp,%esp

Linux Technology
Center
/proc/ksyms Output

                   Memory Addr         Symbol                 [Module Name]
                   c2483060 test_read_proc [test]
                   c2483000 __insmod_test_O/home/ross/prog/test.o_M3                     [test]
                   c2483110 __insmod_test_S.rodata_L68                  [test]
                   c2483060 __insmod_test_S.text_L176                   [test]
                   c2483080 foo        [test]
                   de79c340 ip6_frag_mem          [ipv6]
                   de783d00 addrconf_del_ifaddr              [ipv6]
                   de78a5bc ipv6_packet_init                 [ipv6]
                   de78fd70 ipv6_sock_mc_drop                [ipv6]

                   de781ee4 ip6_call_ra_chain                [ipv6]

                    EIP of c2483069 is within the routine test_read_proc in module [test]
                    Next, disassemble the module test.o and find the instruction with the offset 9
                        (EIP) - (Base addr of routine)
                        c2483069 - c2483060 = 9
Linux Technology
Center
Failing Line of Code
                       Excerpt from quot;objdump -D test.o quot;
                   test.o:      file format elf32-i386
                   Disassembly of section .text:
                   00000000 <test_read_proc>:
                          0:      55                                  push    %ebp
                          1:      89 e5                               mov     %esp,%ebp
                          3:      83 ec 08                            sub     $0x8,%esp
                          6:      83 c4 f8                            add     $0xfffffff8,%esp
                          9:      a1 00 00 00 00                      mov     0x0,%eax
                          e:      50                                  push    %eax
                          f:      68 00 00 00 00                      push    $0x0
                       C Source Code
                   int test_read_proc(char *buf, char **start, off_t offset, int count, int *eof, void
                   *data)
                   {       int *ptr;      ptr=0;       printk(quot;%dnquot;,*ptr);   return 0; }

Linux Technology
Center
LKCD System Dump
                   Prework (don't wait until you've had an event)
                     Apply kernel patches
                     Configure dump device
                        Dedicated device vs. swap device
                     See tutorial for specific steps
                   Dump invocation
                     Call to panic()
                     Magic SysReq 'c' key
                     Can be nondisruptive
                     NMI (Non maskable interrupt)
                   Analysis preparation
                     Copy dump to filesystem
                     Collect System.map, Kerntypes



Linux Technology
Center
Lcrash Tool
                    Use lcrash to analyze
                      Interactive command oriented tool
                      Can run on a quot;livequot; system
                    Useful subcommands
                      report
                         Display system summary, dmesg log, task list, and stack trace of failing task
                      bt -f
                                Display back trace of a task
                      task -f
                                Display tasks/processes at the time of the dump
                         print structure statement
                                print (*((struct task_struct *)0xtask_addr))




Linux Technology
Center
Dump Analysis
                    Sample output of quot;btquot; (backtrace)


                   STACK TRACE FOR TASK: 0xc02fc000 (swapper)
                    0 dump_execute+110 [0xc01bc6ae]
                    1 dump_execute+93 [0xc01bc69d]
                    2 panic+144 [0xc0112b80]
                    3 handle_sysrq+187 [0xc018b1fb]     <-- dump invoked

                    4 handle_scancode+376 [0xc0189ac4]
                    5 handle_kbd_event+264 [0xc018aaf4]
                    6 keyboard_interrupt+23 [0xc018ab5f]
                    7 handle_IRQ_event+75 [0xc01084bf]
                    8 do_IRQ+161 [0xc01086a1]
                    9 do_IRQ+161 [0xc01086a1]
Linux Technology
Center
Dump Analysis (continued)
                    Excerpt from quot;reportquot; lcrash command... shows dmesg log


                     .....
                    <6>SysRq: <0>Kernel panic: sysrq
                    <0>In interrupt handler - not syncing
                    <4>dump: Dumping to device 0x805 [sd(8,5)] on CPU 0
                    <4>Dump compression value is 0x0 ...
                    <4>Writing dump header ...
                    <4>Writing dump pages ...




Linux Technology
Center
For More Information
                    IBM Global Services Linux Support Line
                      Howto/Usage and Defect Support
                      http://ibm.com/linux/support

                    Linux Device Drivers, 2nd Edition, Alessandro Rubini and
                    Jonathan Corbet, O'Reilly Publishers
                    LKCD - Linux Kernel Crash Dump
                      http://lkcd.sourceforge.net/

                    Dprobes
                      http://oss.software.ibm.com/developer/opensource/linux/   projects/dprobes/
                    Linux Trace Toolkit
                      http://www.opersys.com/LTT/index.html




Linux Technology
Center
More Information
                    Magic SysReq - /usr/src/linux/Documentation/sysrq.txt
                    User Mode Linux
                      http://user-mode-linux.sourceforge.net/

                    IKD - Integrated Kernel Debugger
                      ftp://ftp.kernel.org/pub/linux/kernel/people/andrea/ikd/

                    KGDB - Remote gdb via serial connection
                      http://kgdb.sourceforge.net/
                    KDB - Built-in Kernel Debugger
                      http://oss.sgi.com/projects/kdb/




Linux Technology
Center
Acknowledgments
                   This work represents the view of the authors and does not
                   necessarily represent the view of IBM.
                   The IBM logo is a registered trademark of International Business
                   Machines Corporation in the United States and/or other countries.
                   Linux is a registered trademark of Linus Torvalds.
                   Other company, product, or service names may be trademarks or
                   service marks of others.




Linux Technology
Center

More Related Content

What's hot

malloc & vmalloc in Linux
malloc & vmalloc in Linuxmalloc & vmalloc in Linux
malloc & vmalloc in LinuxAdrian Huang
 
Process Address Space: The way to create virtual address (page table) of user...
Process Address Space: The way to create virtual address (page table) of user...Process Address Space: The way to create virtual address (page table) of user...
Process Address Space: The way to create virtual address (page table) of user...Adrian Huang
 
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...Adrian Huang
 
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven RostedtKernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven RostedtAnne Nicolas
 
The Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageThe Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageKernel TLV
 
Physical Memory Management.pdf
Physical Memory Management.pdfPhysical Memory Management.pdf
Physical Memory Management.pdfAdrian Huang
 
Linux kernel memory allocators
Linux kernel memory allocatorsLinux kernel memory allocators
Linux kernel memory allocatorsHao-Ran Liu
 
LISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceLISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceBrendan Gregg
 
Memory Mapping Implementation (mmap) in Linux Kernel
Memory Mapping Implementation (mmap) in Linux KernelMemory Mapping Implementation (mmap) in Linux Kernel
Memory Mapping Implementation (mmap) in Linux KernelAdrian Huang
 
Linux Memory Management with CMA (Contiguous Memory Allocator)
Linux Memory Management with CMA (Contiguous Memory Allocator)Linux Memory Management with CMA (Contiguous Memory Allocator)
Linux Memory Management with CMA (Contiguous Memory Allocator)Pankaj Suryawanshi
 
Linux Kernel Booting Process (2) - For NLKB
Linux Kernel Booting Process (2) - For NLKBLinux Kernel Booting Process (2) - For NLKB
Linux Kernel Booting Process (2) - For NLKBshimosawa
 
Linux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBLinux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBshimosawa
 
U boot porting guide for SoC
U boot porting guide for SoCU boot porting guide for SoC
U boot porting guide for SoCMacpaul Lin
 
Anatomy of the loadable kernel module (lkm)
Anatomy of the loadable kernel module (lkm)Anatomy of the loadable kernel module (lkm)
Anatomy of the loadable kernel module (lkm)Adrian Huang
 
U-Boot presentation 2013
U-Boot presentation  2013U-Boot presentation  2013
U-Boot presentation 2013Wave Digitech
 
Linux kernel debugging
Linux kernel debuggingLinux kernel debugging
Linux kernel debuggingHao-Ran Liu
 
Kdump and the kernel crash dump analysis
Kdump and the kernel crash dump analysisKdump and the kernel crash dump analysis
Kdump and the kernel crash dump analysisBuland Singh
 
Slab Allocator in Linux Kernel
Slab Allocator in Linux KernelSlab Allocator in Linux Kernel
Slab Allocator in Linux KernelAdrian Huang
 

What's hot (20)

malloc & vmalloc in Linux
malloc & vmalloc in Linuxmalloc & vmalloc in Linux
malloc & vmalloc in Linux
 
Process Address Space: The way to create virtual address (page table) of user...
Process Address Space: The way to create virtual address (page table) of user...Process Address Space: The way to create virtual address (page table) of user...
Process Address Space: The way to create virtual address (page table) of user...
 
Linux Network Stack
Linux Network StackLinux Network Stack
Linux Network Stack
 
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
 
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven RostedtKernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
 
The Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageThe Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast Storage
 
Physical Memory Management.pdf
Physical Memory Management.pdfPhysical Memory Management.pdf
Physical Memory Management.pdf
 
Linux kernel memory allocators
Linux kernel memory allocatorsLinux kernel memory allocators
Linux kernel memory allocators
 
LISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceLISA2019 Linux Systems Performance
LISA2019 Linux Systems Performance
 
Memory Mapping Implementation (mmap) in Linux Kernel
Memory Mapping Implementation (mmap) in Linux KernelMemory Mapping Implementation (mmap) in Linux Kernel
Memory Mapping Implementation (mmap) in Linux Kernel
 
Linux Memory Management with CMA (Contiguous Memory Allocator)
Linux Memory Management with CMA (Contiguous Memory Allocator)Linux Memory Management with CMA (Contiguous Memory Allocator)
Linux Memory Management with CMA (Contiguous Memory Allocator)
 
Linux Kernel Booting Process (2) - For NLKB
Linux Kernel Booting Process (2) - For NLKBLinux Kernel Booting Process (2) - For NLKB
Linux Kernel Booting Process (2) - For NLKB
 
Kernel crashdump
Kernel crashdumpKernel crashdump
Kernel crashdump
 
Linux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBLinux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKB
 
U boot porting guide for SoC
U boot porting guide for SoCU boot porting guide for SoC
U boot porting guide for SoC
 
Anatomy of the loadable kernel module (lkm)
Anatomy of the loadable kernel module (lkm)Anatomy of the loadable kernel module (lkm)
Anatomy of the loadable kernel module (lkm)
 
U-Boot presentation 2013
U-Boot presentation  2013U-Boot presentation  2013
U-Boot presentation 2013
 
Linux kernel debugging
Linux kernel debuggingLinux kernel debugging
Linux kernel debugging
 
Kdump and the kernel crash dump analysis
Kdump and the kernel crash dump analysisKdump and the kernel crash dump analysis
Kdump and the kernel crash dump analysis
 
Slab Allocator in Linux Kernel
Slab Allocator in Linux KernelSlab Allocator in Linux Kernel
Slab Allocator in Linux Kernel
 

Viewers also liked

Linux Crash Dump Capture and Analysis
Linux Crash Dump Capture and AnalysisLinux Crash Dump Capture and Analysis
Linux Crash Dump Capture and AnalysisPaul V. Novarese
 
Linux kernel debugging
Linux kernel debuggingLinux kernel debugging
Linux kernel debugginglibfetion
 
reference_guide_Kernel_Crash_Dump_Analysis
reference_guide_Kernel_Crash_Dump_Analysisreference_guide_Kernel_Crash_Dump_Analysis
reference_guide_Kernel_Crash_Dump_AnalysisBuland Singh
 
Kernel Recipes 2015 - Kernel dump analysis
Kernel Recipes 2015 - Kernel dump analysisKernel Recipes 2015 - Kernel dump analysis
Kernel Recipes 2015 - Kernel dump analysisAnne Nicolas
 
Linux Kernel Debugging Essentials workshop
Linux Kernel Debugging Essentials workshopLinux Kernel Debugging Essentials workshop
Linux Kernel Debugging Essentials workshopLubomir Rintel
 
Troubleshooting Linux Kernel Modules And Device Drivers
Troubleshooting Linux Kernel Modules And Device DriversTroubleshooting Linux Kernel Modules And Device Drivers
Troubleshooting Linux Kernel Modules And Device DriversSatpal Parmar
 
Linux kernel tracing
Linux kernel tracingLinux kernel tracing
Linux kernel tracingViller Hsiao
 
KVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStackKVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStackBoden Russell
 
Linux io-stack-diagram v1.0
Linux io-stack-diagram v1.0Linux io-stack-diagram v1.0
Linux io-stack-diagram v1.0bsd free
 
Linux Kernel Crashdump
Linux Kernel CrashdumpLinux Kernel Crashdump
Linux Kernel CrashdumpMarian Marinov
 
Kernel Recipes 2015: Kernel packet capture technologies
Kernel Recipes 2015: Kernel packet capture technologiesKernel Recipes 2015: Kernel packet capture technologies
Kernel Recipes 2015: Kernel packet capture technologiesAnne Nicolas
 
Kernel Recipes 2015: Speed up your kernel development cycle with QEMU
Kernel Recipes 2015: Speed up your kernel development cycle with QEMUKernel Recipes 2015: Speed up your kernel development cycle with QEMU
Kernel Recipes 2015: Speed up your kernel development cycle with QEMUAnne Nicolas
 
OpenStack for Beginners
OpenStack for BeginnersOpenStack for Beginners
OpenStack for BeginnersJesse Proudman
 
Linux Kernel Input: mouse, teclado, joystick
Linux Kernel Input: mouse, teclado, joystickLinux Kernel Input: mouse, teclado, joystick
Linux Kernel Input: mouse, teclado, joystickMarcos Paulo de Souza
 
Systemtap
SystemtapSystemtap
SystemtapFeng Yu
 
LAS16-403 - GDB Linux Kernel Awareness
LAS16-403 - GDB Linux Kernel Awareness LAS16-403 - GDB Linux Kernel Awareness
LAS16-403 - GDB Linux Kernel Awareness Peter Griffin
 
Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...
Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...
Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...Anne Nicolas
 
Linux Kernel Security Overview - KCA 2009
Linux Kernel Security Overview - KCA 2009Linux Kernel Security Overview - KCA 2009
Linux Kernel Security Overview - KCA 2009James Morris
 

Viewers also liked (20)

Linux Crash Dump Capture and Analysis
Linux Crash Dump Capture and AnalysisLinux Crash Dump Capture and Analysis
Linux Crash Dump Capture and Analysis
 
Linux kernel debugging
Linux kernel debuggingLinux kernel debugging
Linux kernel debugging
 
reference_guide_Kernel_Crash_Dump_Analysis
reference_guide_Kernel_Crash_Dump_Analysisreference_guide_Kernel_Crash_Dump_Analysis
reference_guide_Kernel_Crash_Dump_Analysis
 
Kernel Recipes 2015 - Kernel dump analysis
Kernel Recipes 2015 - Kernel dump analysisKernel Recipes 2015 - Kernel dump analysis
Kernel Recipes 2015 - Kernel dump analysis
 
Kernel Debugging & Profiling
Kernel Debugging & ProfilingKernel Debugging & Profiling
Kernel Debugging & Profiling
 
Linux Kernel Debugging Essentials workshop
Linux Kernel Debugging Essentials workshopLinux Kernel Debugging Essentials workshop
Linux Kernel Debugging Essentials workshop
 
Troubleshooting Linux Kernel Modules And Device Drivers
Troubleshooting Linux Kernel Modules And Device DriversTroubleshooting Linux Kernel Modules And Device Drivers
Troubleshooting Linux Kernel Modules And Device Drivers
 
Linux kernel tracing
Linux kernel tracingLinux kernel tracing
Linux kernel tracing
 
KVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStackKVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStack
 
Linux io-stack-diagram v1.0
Linux io-stack-diagram v1.0Linux io-stack-diagram v1.0
Linux io-stack-diagram v1.0
 
Linux Kernel Crashdump
Linux Kernel CrashdumpLinux Kernel Crashdump
Linux Kernel Crashdump
 
Kernel Recipes 2015: Kernel packet capture technologies
Kernel Recipes 2015: Kernel packet capture technologiesKernel Recipes 2015: Kernel packet capture technologies
Kernel Recipes 2015: Kernel packet capture technologies
 
Kernel Recipes 2015: Speed up your kernel development cycle with QEMU
Kernel Recipes 2015: Speed up your kernel development cycle with QEMUKernel Recipes 2015: Speed up your kernel development cycle with QEMU
Kernel Recipes 2015: Speed up your kernel development cycle with QEMU
 
OpenStack for Beginners
OpenStack for BeginnersOpenStack for Beginners
OpenStack for Beginners
 
Linux Kernel Input: mouse, teclado, joystick
Linux Kernel Input: mouse, teclado, joystickLinux Kernel Input: mouse, teclado, joystick
Linux Kernel Input: mouse, teclado, joystick
 
Systemtap
SystemtapSystemtap
Systemtap
 
LAS16-403 - GDB Linux Kernel Awareness
LAS16-403 - GDB Linux Kernel Awareness LAS16-403 - GDB Linux Kernel Awareness
LAS16-403 - GDB Linux Kernel Awareness
 
Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...
Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...
Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...
 
Linux Kernel Security Overview - KCA 2009
Linux Kernel Security Overview - KCA 2009Linux Kernel Security Overview - KCA 2009
Linux Kernel Security Overview - KCA 2009
 
Linux introduction
Linux introductionLinux introduction
Linux introduction
 

Similar to Debugging linux kernel tools and techniques

Troubleshooting linux-kernel-modules-and-device-drivers-1233050713693744-1
Troubleshooting linux-kernel-modules-and-device-drivers-1233050713693744-1Troubleshooting linux-kernel-modules-and-device-drivers-1233050713693744-1
Troubleshooting linux-kernel-modules-and-device-drivers-1233050713693744-1Jagadisha Maiya
 
HKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with CoresightHKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with CoresightLinaro
 
Рахманов Александр "Что полезного в разборе дампов для .NET-разработчиков?"
Рахманов Александр "Что полезного в разборе дампов для .NET-разработчиков?"Рахманов Александр "Что полезного в разборе дампов для .NET-разработчиков?"
Рахманов Александр "Что полезного в разборе дампов для .NET-разработчиков?"Yulia Tsisyk
 
Windbg랑 친해지기
Windbg랑 친해지기Windbg랑 친해지기
Windbg랑 친해지기Ji Hun Kim
 
Writing Metasploit Plugins
Writing Metasploit PluginsWriting Metasploit Plugins
Writing Metasploit Pluginsamiable_indian
 
The true story_of_hello_world
The true story_of_hello_worldThe true story_of_hello_world
The true story_of_hello_worldfantasy zheng
 
May2010 hex-core-opt
May2010 hex-core-optMay2010 hex-core-opt
May2010 hex-core-optJeff Larkin
 
Accelerated .NET Memory Dump Analysis training public slides
Accelerated .NET Memory Dump Analysis training public slidesAccelerated .NET Memory Dump Analysis training public slides
Accelerated .NET Memory Dump Analysis training public slidesDmitry Vostokov
 
Shellcoding in linux
Shellcoding in linuxShellcoding in linux
Shellcoding in linuxAjin Abraham
 
How Triton can help to reverse virtual machine based software protections
How Triton can help to reverse virtual machine based software protectionsHow Triton can help to reverse virtual machine based software protections
How Triton can help to reverse virtual machine based software protectionsJonathan Salwan
 
An Embedded Error Recovery and Debugging Mechanism for Scripting Language Ext...
An Embedded Error Recovery and Debugging Mechanism for Scripting Language Ext...An Embedded Error Recovery and Debugging Mechanism for Scripting Language Ext...
An Embedded Error Recovery and Debugging Mechanism for Scripting Language Ext...David Beazley (Dabeaz LLC)
 
Windows Debugging with WinDbg
Windows Debugging with WinDbgWindows Debugging with WinDbg
Windows Debugging with WinDbgArno Huetter
 
Stability issues of user space
Stability issues of user spaceStability issues of user space
Stability issues of user space晓东 杜
 
Swug July 2010 - windows debugging by sainath
Swug July 2010 - windows debugging by sainathSwug July 2010 - windows debugging by sainath
Swug July 2010 - windows debugging by sainathDennis Chung
 
Reverse engineering20151112
Reverse engineering20151112Reverse engineering20151112
Reverse engineering20151112Bordeaux I
 
Crash_Report_Mechanism_In_Tizen
Crash_Report_Mechanism_In_TizenCrash_Report_Mechanism_In_Tizen
Crash_Report_Mechanism_In_TizenLex Yu
 
Finding Xori: Malware Analysis Triage with Automated Disassembly
Finding Xori: Malware Analysis Triage with Automated DisassemblyFinding Xori: Malware Analysis Triage with Automated Disassembly
Finding Xori: Malware Analysis Triage with Automated DisassemblyPriyanka Aash
 

Similar to Debugging linux kernel tools and techniques (20)

Troubleshooting linux-kernel-modules-and-device-drivers-1233050713693744-1
Troubleshooting linux-kernel-modules-and-device-drivers-1233050713693744-1Troubleshooting linux-kernel-modules-and-device-drivers-1233050713693744-1
Troubleshooting linux-kernel-modules-and-device-drivers-1233050713693744-1
 
HKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with CoresightHKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with Coresight
 
Рахманов Александр "Что полезного в разборе дампов для .NET-разработчиков?"
Рахманов Александр "Что полезного в разборе дампов для .NET-разработчиков?"Рахманов Александр "Что полезного в разборе дампов для .NET-разработчиков?"
Рахманов Александр "Что полезного в разборе дампов для .NET-разработчиков?"
 
Windbg랑 친해지기
Windbg랑 친해지기Windbg랑 친해지기
Windbg랑 친해지기
 
Writing Metasploit Plugins
Writing Metasploit PluginsWriting Metasploit Plugins
Writing Metasploit Plugins
 
The true story_of_hello_world
The true story_of_hello_worldThe true story_of_hello_world
The true story_of_hello_world
 
The Spectre of Meltdowns
The Spectre of MeltdownsThe Spectre of Meltdowns
The Spectre of Meltdowns
 
Audit
AuditAudit
Audit
 
May2010 hex-core-opt
May2010 hex-core-optMay2010 hex-core-opt
May2010 hex-core-opt
 
Accelerated .NET Memory Dump Analysis training public slides
Accelerated .NET Memory Dump Analysis training public slidesAccelerated .NET Memory Dump Analysis training public slides
Accelerated .NET Memory Dump Analysis training public slides
 
Shellcoding in linux
Shellcoding in linuxShellcoding in linux
Shellcoding in linux
 
How Triton can help to reverse virtual machine based software protections
How Triton can help to reverse virtual machine based software protectionsHow Triton can help to reverse virtual machine based software protections
How Triton can help to reverse virtual machine based software protections
 
An Embedded Error Recovery and Debugging Mechanism for Scripting Language Ext...
An Embedded Error Recovery and Debugging Mechanism for Scripting Language Ext...An Embedded Error Recovery and Debugging Mechanism for Scripting Language Ext...
An Embedded Error Recovery and Debugging Mechanism for Scripting Language Ext...
 
Windows Debugging with WinDbg
Windows Debugging with WinDbgWindows Debugging with WinDbg
Windows Debugging with WinDbg
 
Valgrind
ValgrindValgrind
Valgrind
 
Stability issues of user space
Stability issues of user spaceStability issues of user space
Stability issues of user space
 
Swug July 2010 - windows debugging by sainath
Swug July 2010 - windows debugging by sainathSwug July 2010 - windows debugging by sainath
Swug July 2010 - windows debugging by sainath
 
Reverse engineering20151112
Reverse engineering20151112Reverse engineering20151112
Reverse engineering20151112
 
Crash_Report_Mechanism_In_Tizen
Crash_Report_Mechanism_In_TizenCrash_Report_Mechanism_In_Tizen
Crash_Report_Mechanism_In_Tizen
 
Finding Xori: Malware Analysis Triage with Automated Disassembly
Finding Xori: Malware Analysis Triage with Automated DisassemblyFinding Xori: Malware Analysis Triage with Automated Disassembly
Finding Xori: Malware Analysis Triage with Automated Disassembly
 

Recently uploaded

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 

Recently uploaded (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 

Debugging linux kernel tools and techniques

  • 1. Linux Kernel Debugging quot;Oopsquot;, Now What? Ross Mikosh & James Washer Linux Technology Center
  • 2. Outline Types of Problems Tools Error and Debug Messages Handling Failures Kernel Investigation Handling a System Crash Oops Analysis Example LKCD/Lcrash More Information Linux Technology Center
  • 3. Tools Debuggers gdb kdb others? Built-In Oops data upon a panic/crash Dump Facility Linux® Kernel Crash Dump - lkcd Linux Trace Toolkit ltt Custom Kernel Instrumentation dprobes Special console functions Magic SysReq key Linux Technology Center
  • 4. Error/Debug Messages System error logs /var/log/* dmesg Syslog Console Application or Module debug level Linux Technology Center
  • 5. Handling Failures System Crash Collect and analyze oops/panic data Collect and analyze dump with lkcd System Hang Use Magic SysReq key NMI invoking a dump using lkcd S/390 - invoke a stand-alone dump Linux Technology Center
  • 6. Kernel Investigation Debuggers Gdb and /proc/kcore Remote kernel debugging - gdb & serial connection Kdb Lcrash on running system Adding printk's in the kernel Programming a debug module or a new /proc file Appropriate for customer/production environment ? Linux Technology Center
  • 7. Handling a System Crash Occurs when a critical system failure is detected Kernel routines call die() Attempts to report/record system state Information is limited Better to have an entire system memory dump LKCD project on SourceForge Thorough analysis and investigation can be done Linux Technology Center
  • 8. Panic/Oops Analysis Steps Collect oops output, System.map, /proc/ksyms, vmlinux, /proc/modules Use ksymoops to interpret oops Instructions is /usr/src/linux/Documentation/oops-tracing.txt Ksymoops(8) man page Be Careful... Brief analysis Ksymoops disassembles the code section The EIP points to the failing instruction The call trace section shows how you got there Caution: Noise on the stack? How to find failing line of code? Linux Technology Center
  • 9. Oops Example Unable to handle kernel NULL pointer dereference at virtual address 00000000 c2483069 <--- EIP (Instruction Pointer or Program Counter) *pde = 00000000 Oops: 0000 CPU: 0 EIP: 0010:[ipv6:__insmod_ipv6_O/lib/modules/2.4.10-4GB/kernel/net/ipv6 ipv6+-472895383/96] EFLAGS: 00010283 eax: db591f98 ebx: de2aeb60 ecx: de2aeb80 edx: c2483060 esi: 00000c00 edi: d41d0000 ebp: db591f5c esp: db591f4c ds: 0018 es: 0018 ss: 0018 Process cat (pid: 1986, stackpage=db591000) Stack: c012ca65 000001f0 ffffffea 00000000 00001000 c014e878 d41d0000 db591f98 00000000 00000c00 db591f94 00000000 de2aeb60 ffffffea 00000000 00001000 deae6f40 00000000 00000000 00000000 c01324d6 de2aeb60 0804db50 00001000 Call Trace: [__alloc_pages+65/452] [proc_file_read+204/420] [sys_read+146/200] [system_call+51/64] Code: a1 00 00 00 00 50 68 10 31 48 c2 e8 67 38 c9 fd 31 c0 89 ec
  • 10. Ksymoops output Using defaults from ksymoops -t elf32-i386 -a i386 Code; 00000000 Before first symbol 00000000 <_EIP>: Code; 00000000 Before first symbol 0: a1 00 00 00 00 mov 0x0,%eax Code; 00000004 Before first symbol 5: 50 push %eax Code; 00000006 Before first symbol 6: 68 10 31 48 c2 push $0xc2483110 Code; 0000000a Before first symbol b: e8 67 38 c9 fd call fdc93877 <_EIP+0xfdc93877> fdc93876 <END_OF_CODE+1e1fa3d8/????> Code; 00000010 Before first symbol 10: 31 c0 xor %eax,%eax Code; 00000012 Before first symbol 12: 89 ec mov %ebp,%esp Linux Technology Center
  • 11. /proc/ksyms Output Memory Addr Symbol [Module Name] c2483060 test_read_proc [test] c2483000 __insmod_test_O/home/ross/prog/test.o_M3 [test] c2483110 __insmod_test_S.rodata_L68 [test] c2483060 __insmod_test_S.text_L176 [test] c2483080 foo [test] de79c340 ip6_frag_mem [ipv6] de783d00 addrconf_del_ifaddr [ipv6] de78a5bc ipv6_packet_init [ipv6] de78fd70 ipv6_sock_mc_drop [ipv6] de781ee4 ip6_call_ra_chain [ipv6] EIP of c2483069 is within the routine test_read_proc in module [test] Next, disassemble the module test.o and find the instruction with the offset 9 (EIP) - (Base addr of routine) c2483069 - c2483060 = 9 Linux Technology Center
  • 12. Failing Line of Code Excerpt from quot;objdump -D test.o quot; test.o: file format elf32-i386 Disassembly of section .text: 00000000 <test_read_proc>: 0: 55 push %ebp 1: 89 e5 mov %esp,%ebp 3: 83 ec 08 sub $0x8,%esp 6: 83 c4 f8 add $0xfffffff8,%esp 9: a1 00 00 00 00 mov 0x0,%eax e: 50 push %eax f: 68 00 00 00 00 push $0x0 C Source Code int test_read_proc(char *buf, char **start, off_t offset, int count, int *eof, void *data) { int *ptr; ptr=0; printk(quot;%dnquot;,*ptr); return 0; } Linux Technology Center
  • 13. LKCD System Dump Prework (don't wait until you've had an event) Apply kernel patches Configure dump device Dedicated device vs. swap device See tutorial for specific steps Dump invocation Call to panic() Magic SysReq 'c' key Can be nondisruptive NMI (Non maskable interrupt) Analysis preparation Copy dump to filesystem Collect System.map, Kerntypes Linux Technology Center
  • 14. Lcrash Tool Use lcrash to analyze Interactive command oriented tool Can run on a quot;livequot; system Useful subcommands report Display system summary, dmesg log, task list, and stack trace of failing task bt -f Display back trace of a task task -f Display tasks/processes at the time of the dump print structure statement print (*((struct task_struct *)0xtask_addr)) Linux Technology Center
  • 15. Dump Analysis Sample output of quot;btquot; (backtrace) STACK TRACE FOR TASK: 0xc02fc000 (swapper) 0 dump_execute+110 [0xc01bc6ae] 1 dump_execute+93 [0xc01bc69d] 2 panic+144 [0xc0112b80] 3 handle_sysrq+187 [0xc018b1fb] <-- dump invoked 4 handle_scancode+376 [0xc0189ac4] 5 handle_kbd_event+264 [0xc018aaf4] 6 keyboard_interrupt+23 [0xc018ab5f] 7 handle_IRQ_event+75 [0xc01084bf] 8 do_IRQ+161 [0xc01086a1] 9 do_IRQ+161 [0xc01086a1] Linux Technology Center
  • 16. Dump Analysis (continued) Excerpt from quot;reportquot; lcrash command... shows dmesg log ..... <6>SysRq: <0>Kernel panic: sysrq <0>In interrupt handler - not syncing <4>dump: Dumping to device 0x805 [sd(8,5)] on CPU 0 <4>Dump compression value is 0x0 ... <4>Writing dump header ... <4>Writing dump pages ... Linux Technology Center
  • 17. For More Information IBM Global Services Linux Support Line Howto/Usage and Defect Support http://ibm.com/linux/support Linux Device Drivers, 2nd Edition, Alessandro Rubini and Jonathan Corbet, O'Reilly Publishers LKCD - Linux Kernel Crash Dump http://lkcd.sourceforge.net/ Dprobes http://oss.software.ibm.com/developer/opensource/linux/ projects/dprobes/ Linux Trace Toolkit http://www.opersys.com/LTT/index.html Linux Technology Center
  • 18. More Information Magic SysReq - /usr/src/linux/Documentation/sysrq.txt User Mode Linux http://user-mode-linux.sourceforge.net/ IKD - Integrated Kernel Debugger ftp://ftp.kernel.org/pub/linux/kernel/people/andrea/ikd/ KGDB - Remote gdb via serial connection http://kgdb.sourceforge.net/ KDB - Built-in Kernel Debugger http://oss.sgi.com/projects/kdb/ Linux Technology Center
  • 19. Acknowledgments This work represents the view of the authors and does not necessarily represent the view of IBM. The IBM logo is a registered trademark of International Business Machines Corporation in the United States and/or other countries. Linux is a registered trademark of Linus Torvalds. Other company, product, or service names may be trademarks or service marks of others. Linux Technology Center