kprobes problem
Baruch Even
baruch@ev-en.org
Sat Mar 12 02:46:00 GMT 2005
Frank Ch. Eigler wrote:
> Hi -
>
>
> On Sat, Mar 12, 2005 at 03:34:45PM +0000, Baruch Even wrote:
>
>>[...]
>>The ret code is at:
>>c0386cbb: 5d pop %ebp
>>c0386cbc: c3 ret
>>
>>If I put the kprobe at cbc it crashes, if I put it in cbb it works. [...]
>>Is it impossible to put a kprobe on a ret instruction? [...]
>
>
> I think you encountered a genuine kprobes bug. This might be a known
> limitation but I don't remember seeing it. It may relate to the way
> instructions are manually decoded for copying or single-stepping.
> Would you mind helping out the debugging process by trying a few
> things, like
>
> - finding some other "ret"'s in the kernel, and trying kprobes there
It happens in another function as well.
> - adding both pre- and post- handlers for the trial kprobes, and put
> printk's in there, to see which (if any) gets processed
It runs both the pre and the post handlers and I get the printks.
> - transcribing the oops message
If needed I can provide my code, it's not a trade secret or anything
like that... but it's doing nothing special.
invalid operand: 0000 [#1]
Modules linked in: ehci_hcd uhci_hcd
CPU: 0
EIP: 0060:[<c02e1bfa>] Not tainted VLI
EFLAGS: 00010286 (2.6.11-baruch)
EIP is at hwif_init+0x15a/0x2b0
eax: 000000a6 ebx: df6f9680 ecx: def3a680 edx: 000000a0
esi: 3d98b690 edi: def3a680 ebp: 00000100 esp: c04a7d90
ds: 007b es: 007b ss: 0068
Process swapper (pid: 0, threadinfo=c04a6000 task=c041bc20)
Stack: def3a680 df6f9680 3d98b690 3d98b690 821b268c 0000fe88 def3a680
def3a680
00000100 df5f3034 c03892e7 3d98b690 def3a680 821b268c def3a680
00000100
df5f2034 c03899f2 def3a680 df6f9680 00000100 10000046 00000020
df6f9680
Call Trace:
[<c03892e7>] __tcp_data_snd_check+0xd7/0xf0
[<c03899f2>] tcp_rcv_established+0x2d2/0x860
[<c03934da>] tcp_v4_do_rcv+0x11a/0x120
[<c0393b0c>] tcp_v4_rcv+0x62c/0x840
[<c03769fb>] ip_local_deliver+0x9b/0x140
[<c0376dbb>] ip_rcv+0x31b/0x440
[<c0341317>] alloc_skb+0x47/0xf0
[<c0348be7>] netif_receive_skb+0x157/0x1d0
[<c02ad463>] e1000_clean_rx_irq+0x153/0x5d0
[<c02aceed>] e1000_clean+0x4d/0x100
[<c0348dd4>] net_rx_action+0x74/0x100
[<c012506b>] __do_softirq+0x7b/0x90
[<c01250a6>] do_softirq+0x26/0x30
[<c010598b>] do_IRQ+0x3b/0x70
[<c011458f>] smp_apic_timer_interrupt+0x2f/0x80
[<c0103c22>] common_interrupt+0x1a/0x20
[<c0101173>] mwait_idle+0x33/0x50
[<c01010f0>] cpu_idle+0x50/0x60
[<c04a87ef>] start_kernel+0x13f/0x160
[<c04a83a0>] unknown_bootoption+0x0/0x1e0
Code: 00 85 d2 0f 84 bb 00 00 00 89 34 24 e8 50 f3 ff ff 85 c0 75 52 8b
86 0c 05 00 00 89 6c 24 04 c7 04 24 20 54 3f c0 89 44 24 08 e8 <62> c9
e3 ff 89 34 24 e8 5a fd ff ff 80 8e 3c 05 00 00 02 ba 01
<0>Kernel panic - not syncing: Fatal exception in interrupt
More information about the Systemtap
mailing list