This is the mail archive of the systemtap@sources.redhat.com mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: kprobes problem


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]