On Tue, Jul 09, 2013 at 08:40:23AM -0400, Dave Anderson wrote:
----- Original Message -----
> > crash> dis -r d0000000046f0060
> > 0xd0000000046f0034 <.init_module>: mflr r0
> > 0xd0000000046f0038 <.init_module+4>: std r30,-16(r1)
> > 0xd0000000046f003c <.init_module+8>: ld r30,-32768(r2)
> > 0xd0000000046f0040 <.init_module+12>: std r0,16(r1)
> > 0xd0000000046f0044 <.init_module+16>: stdu r1,-128(r1)
> > 0xd0000000046f0048 <.init_module+20>: ld r3,-32760(r30)
> > 0xd0000000046f004c <.init_module+24>: bl 0xd0000000046f0078
> > 0xd0000000046f0050 <.init_module+28>: ld r2,40(r1)
> > 0xd0000000046f0054 <.init_module+32>: li r9,0
> > 0xd0000000046f0058 <.init_module+36>: addi r1,r1,128
> > 0xd0000000046f005c <.init_module+40>: li r3,0
> > 0xd0000000046f0060 <.init_module+44>: stw r9,0(r9)
> > crash>
> >
> > Dave
> >
> Thanks, Dave. But how could we let the 'dis -l' working here, please?
>
> crash> dis -l .my_oops_init 20
> 0xd000000001460034 <.init_module>: mflr r0
> 0xd000000001460038 <.init_module+4>: std r30,-16(r1)
> 0xd00000000146003c <.init_module+8>: ld r30,-32768(r2)
> 0xd000000001460040 <.init_module+12>: std r0,16(r1)
> 0xd000000001460044 <.init_module+16>: stdu r1,-128(r1)
> 0xd000000001460048 <.init_module+20>: ld r3,-32760(r30)
> 0xd00000000146004c <.init_module+24>: bl 0xd000000001460078
> 0xd000000001460050 <.init_module+28>: ld r2,40(r1)
> 0xd000000001460054 <.init_module+32>: li r9,0
> 0xd000000001460058 <.init_module+36>: addi r1,r1,128
> 0xd00000000146005c <.init_module+40>: li r3,0
> 0xd000000001460060 <.init_module+44>: stw r9,0(r9)
> 0xd000000001460064 <.init_module+48>: ld r0,16(r1)
> 0xd000000001460068 <.init_module+52>: ld r30,-16(r1)
> 0xd00000000146006c <.init_module+56>: mtlr r0
> 0xd000000001460070 <.init_module+60>: blr
> 0xd000000001460074 <.init_module+64>: .long 0x0
> 0xd000000001460078 <.init_module+68>: addis r12,r2,-1
> 0xd00000000146007c <.init_module+72>: addi r12,r12,14152
> 0xd000000001460080 <.init_module+76>: std r2,40(r1)
> crash>
cI don't know. Line numbers do appear to work for the "normal" modules.
Dave
I just found that if I remove the '__init':
//static int __init my_oops_init(void) {
static int my_oops_init(void) {
printk("oops from the module\n");
create_oops();
return (0);
}
then source code can be list:
crash> dis -l D00000000147002C
/home/hpt/oops/oops.c: 6
0xd00000000147002c <.init_module+44>: stw r9,0(r9)
crash>