Printing all global variables/local variables?

后端 未结 3 544
眼角桃花
眼角桃花 2020-11-28 17:15

How can I print all global variables/local variables? Is that possible in gdb?

相关标签:
3条回答
  • 2020-11-28 17:59

    Type info variables to list "All global and static variable names".

    Type info locals to list "Local variables of current stack frame" (names and values), including static variables in that function.

    Type info args to list "Arguments of the current stack frame" (names and values).

    0 讨论(0)
  • 2020-11-28 18:01

    In addition, since info locals does not display the arguments to the function you're in, use

    (gdb) info args
    

    For example:

    int main(int argc, char *argv[]) {
        argc = 6*7;    //Break here.
        return 0;
    }
    

    argc and argv won't be shown by info locals. The message will be "No locals."

    Reference: info locals command.

    0 讨论(0)
  • 2020-11-28 18:04

    In case you want to see the local variables of a calling function use select-frame before info locals

    E.g.:

    (gdb) bt
    #0  0xfec3c0b5 in _lwp_kill () from /lib/libc.so.1
    #1  0xfec36f39 in thr_kill () from /lib/libc.so.1
    #2  0xfebe3603 in raise () from /lib/libc.so.1
    #3  0xfebc2961 in abort () from /lib/libc.so.1
    #4  0xfebc2bef in _assert_c99 () from /lib/libc.so.1
    #5  0x08053260 in main (argc=1, argv=0x8047958) at ber.c:480
    (gdb) info locals
    No symbol table info available.
    (gdb) select-frame 5
    (gdb) info locals
    i = 28
    (gdb) 
    
    0 讨论(0)
提交回复
热议问题