Re: 2.5.63 accesses below %esp (was: Re: ntfs OOPS (2.5.63))

Szakacsits Szabolcs (szaka@sienet.hu)
Tue, 18 Mar 2003 20:44:39 +0100 (MET)


On Tue, 18 Mar 2003, Keith Owens wrote:
> At the risk of stating the obvious: the only program that cares about
> the 'Code:' line is ksymoops. It already handles code around the EIP
> by looking for a byte enclosed in <> and assuming that byte is at EIP.
> ksymoops can happily decode around the failing instruction and does so
> for most architectures with fixed length instructions.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Ah, this is the reason it didn't work for x86 when I looked this issue
with ksymoops days ago and tried all possible bracketing combinations
(nothing such limit described in the man page). I didn't mention this
before because it's a non-issue if kernel doesn't dump the backwards
bytes for these archs.

> I can change ksymoops to add a special case for architectures with
> variable length instructions - i386, s390 and their 64 bit equivalents,
> are there any others?

Please don't bother. Linus have indicated already 4 times in this
thread he will not dump backwards code if it doesn't start at
instruction boundary.

> For variable length instructions, ksymoops will extract the bytes
> up to but not including eip, decode and print them with a warning
>
> This architecture has variable length instructions, decoding before eip is
> unreliable, take these instructions with a pinch of salt.

86% it will be incorrect on x86. But the right code can be dumped 100%
among a max 7 decoded lists to choose from (for pedants, yes in theory
it's not exactly 100% but a bit less, only from practical and problem
solving point of view "100%"). I've found the max ususally is 1, 2 or
3 with decreasing probabilities but I didn't do exhaustive statistical
analysis and it also depends on the compiler (version).

Szaka

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