On Tue, Mar 05, 2013 at 08:26:15AM +0800, Lei Wen wrote:
 Hi Mike,
 
 
 On Tue, Mar 5, 2013 at 3:49 AM, Mika Westerberg <mika.westerberg(a)iki.fi>wrote:
 
 > On Mon, Mar 04, 2013 at 10:20:42AM +0800, Lei Wen wrote:
 > > I met "dis" command not correct issue when use the crash, any idea?
 > > For built-in "dis" command in crash:
 > > crash> dis task_rq_lock
 > > 0xc015a2d8 <task_rq_lock>:      rscsgt  r0, sp, r3, lsl #14
 > > 0xc015a2dc <task_rq_lock+4>:    mrcgt   8, 7, r0, cr2, cr13, {5}
 > > 0xc015a2e0 <task_rq_lock+8>:    mcrvc   8, 4, r3, cr13, cr3, {6}
 > > 0xc015a2e4 <task_rq_lock+12>:   lslsvc  r3, r10, r8
 > > 0xc015a2e8 <task_rq_lock+16>:   bl      0xc049fe34
 > > <__ip_route_output_key+220>
 >
 > Looks weird.
 >
 > What is the kernel version? Does the 'dis' command work for other
 > functions?
 >
 
 Seems other functions is not working either...
 Is the page table being corrupted? But I still could parse out the dump
 image and check the kernel dmesg for it, which is also weird. 
If crash is able to show you backtraces etc. I believe it has nothing to do
with page table corruption. And the symbols are in vmlinux file anyway.
 crash> dis sched_rt_handler
 0xc0160ed8 <sched_rt_handler>:  cdppl   13, 5, cr2, cr6, cr13, {4}
 0xc0160edc <sched_rt_handler+4>:        stcle   9, cr7, [r7], #132      ;
 0x84
 0xc0160ee0 <sched_rt_handler+8>:                        ; <UNDEFINED>
 instruction: 0x167256bb
 
 (gdb) disas sched_rt_handler
 Dump of assembler code for function sched_rt_handler:
    0xc0160ed8 <+0>:     push    {r4, r5, r6, r7, r8, r9, r10, r11, lr}
    0xc0160edc <+4>:     add     r11, sp, #32
    0xc0160ee0 <+8>:     ldr     r4, [pc, #384]  ; 0xc0161068
 <sched_rt_handler+400> 
What does 'nm vmlinux|grep sched_rt_handler' say?
Since the dis command does nothing ARM specific, I wonder if we have GDB
version in crash that misses some newer GCC features? What GDB version are you
using?