valery brasseur wrote:
> got the CVS tree, then build and got ... same result !!!
> Mar 28 20:17:06 sys-pc21 kernel: Code: 89 02 8b 83 78 20 00 00 0f b6 40
> 31 83 c0 f6 83 f8 04 77 08
> I try ksymsoops on it and got this :
>
> Code: 00000000 Before first symbol 00000000 <_IP>: <===
> Code: 00000000 Before first symbol 0: 89
> 02 movl %eax,(%edx) <===
> Code: 00000002 Before first symbol 2: 8b 83 78 20 00
> 00 movl 0x2078(%ebx),%eax
> Code: 00000008 Before first symbol 8: 0f b6 40
> 31 movzbl 0x31(%eax),%eax
> Code: 0000000c Before first symbol c: 83 c0
> f6 addl $0xfffffff6,%eax
> Code: 0000000f Before first symbol f: 83 f8
> 04 cmpl $0x4,%eax
> Code: 00000012 Before first symbol 12: 77
> 08 ja 0000001c Before first symbol
>
> any idea ?
I need to reboot my Linux box to unload plex86 module after this oops,
have you reboot your ? Have you use the new module ? If so, you must
find where is this code.
Process as follow:
$ objdump --disassemble-all plex86.o > plex86.disa
and search '8b 83 78 20 00 00' in plex86.disa with your favorit editor.
Validate that's the correct function with others assembler lines. Then you got
the name of the function, say host2guest for exemple, lookup source file
containing that function (kernel/monitor.c for host2guest) and build assembler
source file with same compilation options.
In kernel/Makefile I have add theses lines:
.s.o:
$(CC) -S $(ALL_CFLAGS) $<
Build assembler source file with make monitor.s, as -g is in ALL_CFLAGS, you
should have debuging information as:
.stabn 68,0,638,.LM254-host2guest
.LM254:
leal 16544(%ebx),%eax
movl %eax,(%ebx)
.stabn 68,0,646,.LM255-host2guest
.LM255:
movl 16616(%ebx),%eax
movzbl 49(%eax),%eax
addl $-10,%eax
cmpl $4,%eax
ja .L76
jmp *.L81(,%eax,4)
.p2align 2
So movl %eax,(%ebx) match line 638. Then return to C source and look at
line 638...
Note that's I have not find '8b 83 78 20 00 00' in my plex86.o.
Hope this help.
--
Edouard G. Parmelan
http://egp.free.fr