Re: decoding kernel oops

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

 



On Wed, Sep 2, 2009 at 6:08 PM, Manish Katiyar<mkatiyar@xxxxxxxxx> wrote:
> Hi,
>
> I was going through this post
> http://kerneltrap.org/mailarchive/linux-kernel/2008/1/8/546623 and
> couldn't understand the steps around the below paragraph.
>
> "
> and run it under gdb, and then when it gets the SIGSEGV (due to the
> obvious NULL pointer dereference), I can just ask gdb to disassemble
> around the array that contains the code[] stuff. Try a few offsets, to see
> when the disassembly makes sense (and gives the reported EIP as the
> beginning of one of the disassembled instructions).
> "
> Has anyone tried this ?? I don't see any useful disas instructions
> when I do so ... Need help in interpreting the procedures of the above
> pos

Hi Manish...

I am not so clear either, but perhaps by exchanging each of our
knowledge, we can teach each other. Specificly, which part that
confuses you? The disas part? That's what the "x/20i" does toward the
start address of array "array". It turns that sequence of hex numbers
into instructions.

I think the real art here is spotting the offending instruction. I
think Linus find it out actually by lookin that there is prefetch
instruction in array+49. And since it's prefetching at the address
stored in %eax, so the last instruction that modifies its content is
surely the root of the problem.

In the other cases, decoding might be not that easy. So IMO that's why
stack trace provides code context. It's not just the offending
instruction which is dumped, but ones sorrounding it.

-- 
regards,

Mulyadi Santosa
Freelance Linux trainer
blog: the-hydra.blogspot.com

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux