Re: [PATCH] Documentation: Update to BUG-HUNTING

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 23 Feb 2006 08:47:39 +1300 Ian McDonald wrote:

> Hi there,

Lo,

> +Finding bugs is not always easy. Have a go though. If you can't find it don't
> +give up. Report as much as you have found to the relevant maintainer. See
> +MAINTAINERS for who that is for the subsystem you have worked on.
   or that you are having problems with.


> +To debug a kernel, use objdump and look for the hex offset from the crash
> +output to find the valid line of code/assembler. Without debug symbols, you
> +will see the assembler code for the routine shown, but if your kernel has
> +debug symbols the C code will also be available. (Debug symbols can be enabled
> +in the kernel hacking menu of the menu configuration.) For example:
> +
> +    objdump -r -S -l --disassemble net/dccp/ipv4.o
> +
> +NB.: you need to be at the top level of the kernel tree for this to pick up
> +your C files.
> +
> +If you don't have access to the code you can also debug on some crash dumps
> +e.g. crash dump output as shown by Dave Miller.
> +
> +>    EIP is at ip_queue_xmit+0x14/0x4c0
> +>     ...
> +>    Code: 44 24 04 e8 6f 05 00 00 e9 e8 fe ff ff 8d 76 00 8d bc 27 00 00
> +>    00 00 55 57  56 53 81 ec bc 00 00 00 8b ac 24 d0 00 00 00 8b 5d 08
> +>    <8b> 83 3c 01 00 00 89 44  24 14 8b 45 28 85 c0 89 44 24 18 0f 85
> +>
> +>    Put the bytes into a "foo.s" file like this:
> +>
> +>           .text
> +>           .globl foo
> +>    foo:
> +>           .byte  .... /* bytes from Code: part of OOPS dump */
> +>
> +>    Compile it with "gcc -c -o foo.o foo.s" then look at the output of
> +>    "objdump --disassemble foo.o".

Maybe add this:

You can also take the "Code:" <object code> and feed it as bytes into a
.S (assembly) source file, assemble that, then objdump the .o file.
This is especially useful if the "Code:" line is one of the best clues
that you have.  Andi Kleen has a script for doing this.  It's called
'decodecode' and it's available from
ftp://ftp.firstfloor.org/pub/ak/shell/decodecode


---
~Randy
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux