Re: How to translate an oops

Guest section DW (dwguest@win.tue.nl)
Sun, 18 Oct 1998 00:17:52 +0200 (MET DST)


From bryan@terran.org Sat Oct 17 21:53:08 1998

On Sat, 17 Oct 1998, Guest section DW wrote:

> In fact, the program ksymoops found in linux/scripts is worthless junk.

[mud-slinging about ksymoops and C++ deleted]

Hmm. I think the deleted part contained the facts, while the only mud
was the part you failed to delete, namely the qualification `worthless junk'.

Perhaps you might have better luck with the "oops" program (discussed in
"Linux Device Drivers", by Alessandro Rubini(spl?)), available on the
O'Reilly FTP site. The URL is:

ftp://ftp.ora.com//pub/examples/linux/drivers/examples.tar.gz

Well, it is not me personally.
I have been too lazy to actually fix ksymoops.cc and each time I try
to use it I find another bug, but I have a C version derived from it
that more or less works and that I have to fix a bit more on each use.
(But I use it only a few times a year.)
The URL you mention has a C version that more or less works.

I try an actual Oops with ksymoops.cc but without symbol table:

# linux/scripts/ksymoops < oops
No symbol map. I'll only show you disassembled code.
#

Hmm. Not much output. Let us try this version by Alessandro.

# ksymoops < oops
EFLAGS: 00010202
eax: 0000003a
ebx: c036b140
ecx: c370a000
...
Code: 00000003:
#

No disassembled code either.

Now with symbol table

# linux/scripts/ksymoops some-System.map < oops
...
Code: c0122e03 <somewhere+9f/544> c7 05 00 00 00 movl $0x0,0x0
Code: c0122e08 <somewhere+a4/544> 00 00 00 00 00
Code: c0122e0d <somewhere+a9/544> 5b popl %ebx
Code: c0122e0e <somewhere+aa/544> 5e popl %esi
Code: c0122e0f <somewhere+ab/544> 5f popl %edi
Code: c0122e10 <somewhere+ac/544> 5d popl %ebp
Code: c0122e11 <somewhere+ad/544> 83 c4 0c addl $0xc,%esp
Code: c0122e14 <somewhere+b0/544> c3 ret
Code: c0122e15 <somewhere+b1/544> 8d 76 00 leal 0x0(%esi),%esi
Code: c0122e18 <somewhere+b4/544> 90 nop
Code: c0122e19 <somewhere+b5/544> 90 nop
Code: c0122e1a <somewhere+b6/544> 90 nop
#

This time ksymoops.cc produces something. But Alessandro's version says

# ksymoops < oops
Code: 40000420:
#

Still no disassembled code.

I think there is still the opportunity for someone to do useful work here.
I mean a solid job, that produces a tool that both compiles and works
without segfaulting when the Oops is incomplete or contains a typo.

Andries

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