On Wed, Nov 08, 2006 at 10:51:00AM -0500, Dave Anderson wrote:
 Rachita Kothiyal wrote:
 
 >
 > > If "crash --machdep irq_eframe_link=40 ..." works, then
 > > something in x86_64_irq_eframe_link_init() needs to be
 > > looked at.
 >
 > Hi Dave
 >
 > The dis common_interrupt looks exactly like above and with the
 > --machdep irq_eframe_link=40 in the commandline I dont see the bogus
 > frames in the bt.
 >
 > Thanks
 > Rachita
 >
 
 Right -- so you'll have to debug x86_64_irq_eframe_link_init().
 and figure out why it's failing to make it to the bottom, where
 the link gets initialized. 
Hi Dave
It turns out that the column width of the window I was running crash on was the problem!
With a width of 80, the instruction at <common_interrupt+49> seems to
be wrapped around. This was causing incomplete instruction getting read into 
the buffer on a fgets in x86_64_irq_eframe_link_init(). It wasnt reaching
till the 'push rbp' instruction at all and this left the irq_eframe_link
uninitialised. On increasing the column size it worked fine.
crash> dis common_interrupt
0xffffffff80109b34 <common_interrupt>:  cld
0xffffffff80109b35 <common_interrupt+1>:        sub    $0x48,%rsp
0xffffffff80109b39 <common_interrupt+5>:        mov    %rdi,0x40(%rsp)
0xffffffff80109b3e <common_interrupt+10>:       mov    %rsi,0x38(%rsp)
0xffffffff80109b43 <common_interrupt+15>:       mov    %rdx,0x30(%rsp)
0xffffffff80109b48 <common_interrupt+20>:       mov    %rcx,0x28(%rsp)
0xffffffff80109b4d <common_interrupt+25>:       mov    %rax,0x20(%rsp)
0xffffffff80109b52 <common_interrupt+30>:       mov    %r8,0x18(%rsp)
0xffffffff80109b57 <common_interrupt+35>:       mov    %r9,0x10(%rsp)
0xffffffff80109b5c <common_interrupt+40>:       mov    %r10,0x8(%rsp)
0xffffffff80109b61 <common_interrupt+45>:       mov    %r11,(%rsp)
0xffffffff80109b65 <common_interrupt+49>:
    lea    0xffffffffffffffd0(%rsp),%rdi
0xffffffff80109b6a <common_interrupt+54>:       push   %rbp
0xffffffff80109b6b <common_interrupt+55>:       mov    %rsp,%rbp
Thanks
Rachita