Re: Understanding disassembly x86 + understanding function call + parameter pass and stack frame

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Aug 12, 2013 at 8:37 PM, amit mehta <gmate.amit@xxxxxxxxx> wrote:
On Mon, Aug 12, 2013 at 5:28 PM, nidhi mittal hada
<nidhimittal19@xxxxxxxxx> wrote:
> Questions:-
> 1)Which memory address in stack contains struct super_block *s
> 2)how does disassembly helps in knowing which register contain the struct
> super_block *s
> 3)bt -f gives highlighted above, register dump at the end, does that help in
> finding this information ???

Have you *actually* spent your time on reading the AMD 64ABI [1] ?
Also there is a very nice and concise document available on x86_64
assembly [2]. While trying to analyse kernel crash dump using 'crash',
utility you might want to refer this page [1] and this blog [4] as well.

[1] http://www.uclibc.org/docs/psABI-x86_64.pdf
[2] www.cs.cmu.edu/~fp/courses/15213-s07/misc/asm64-handout.pdf
[3] http://people.redhat.com/~anderson/
[4] http://www.sungju.org/?p=1166

!!amit

Thats my system on which  ran crash tool
[nidhi@raw ~]$ uname -a
Linux raw.ind.hp.com 2.6.32-220.el6.hpsp16k1.x86_64 #1 SMP Mon Nov 19 17:07:07 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

thats the information of coredump file:-
      KERNEL: vmlinux                          
    DUMPFILE: vmcore.1  [PARTIAL DUMP]
        CPUS: 8
        DATE: Mon Jun 11 09:10:59 2012
      UPTIME: 13 days, 22:39:30
LOAD AVERAGE: 83.88, 62.23, 30.30
       TASKS: 393
    NODENAME: million.ind.hp.com
     RELEASE: 2.6.32-220.el6.hpsp16k1.x86_64
     VERSION: #1 SMP Mon Nov 19 17:07:07 UTC 2012
     MACHINE: x86_64  (2132 Mhz)
      MEMORY: 96 GB
       PANIC: "Kernel panic - not syncing: Watchdog detected hard LOCKUP on cpu 4"
         PID: 26715
     COMMAND: "mount.*******"
        TASK: ffff8817dd4de0c0  [THREAD_INFO: ffff8802c3f80000]
         CPU: 4
       STATE: TASK_UNINTERRUPTIBLE (PANIC)


Thank you very very much .. It was so helpful what Tobias and amit explained.

I actually skipped AMD64 ABI considering its for AMD architecture and mine was
x86_64 .. my mistake !!

i read from wikipedia x86 calling convention link.
What i read was that all function arguments should be on stack .. thats where i was wrong....!!!
I read that on x86_64 arg are pushed from right to left ..which also seems wrong now..

Now i m finding AMD 64ABI is the thing to be read for understanding this crash output.

Thanks a lottt

Nidhi




_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux