How can one see content of stack with GDB?

后端 未结 3 918
时光说笑
时光说笑 2020-12-12 13:33

I am new to GDB, so I have some questions:

  • How can I look at content of the stack? Example: to see content of register, I type info registers.

3条回答
  •  醉梦人生
    2020-12-12 13:53

    Use:

    • bt - backtrace: show stack functions and args
    • info frame - show stack start/end/args/locals pointers
    • x/100x $sp - show stack memory
    (gdb) bt
    #0  zzz () at zzz.c:96
    #1  0xf7d39cba in yyy (arg=arg@entry=0x0) at yyy.c:542
    #2  0xf7d3a4f6 in yyyinit () at yyy.c:590
    #3  0x0804ac0c in gnninit () at gnn.c:374
    #4  main (argc=1, argv=0xffffd5e4) at gnn.c:389
    
    (gdb) info frame
    Stack level 0, frame at 0xffeac770:
     eip = 0x8049047 in main (goo.c:291); saved eip 0xf7f1fea1
     source language c.
     Arglist at 0xffeac768, args: argc=1, argv=0xffffd5e4
     Locals at 0xffeac768, Previous frame's sp is 0xffeac770
     Saved registers:
      ebx at 0xffeac75c, ebp at 0xffeac768, esi at 0xffeac760, edi at 0xffeac764, eip at 0xffeac76c
    
    (gdb) x/10x $sp
    0xffeac63c: 0xf7d39cba  0xf7d3c0d8  0xf7d3c21b  0x00000001
    0xffeac64c: 0xf78d133f  0xffeac6f4  0xf7a14450  0xffeac678
    0xffeac65c: 0x00000000  0xf7d3790e
    

提交回复
热议问题