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

nidhi mittal hada nidhimittal19 at gmail.com
Tue Aug 13 08:17:56 EDT 2013


On Mon, Aug 12, 2013 at 8:37 PM, amit mehta <gmate.amit at gmail.com> wrote:

> On Mon, Aug 12, 2013 at 5:28 PM, nidhi mittal hada
> <nidhimittal19 at gmail.com> 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 at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20130813/a27674f6/attachment.html 


More information about the Kernelnewbies mailing list