zoukankan      html  css  js  c++  java
  • GDB调试汇编堆栈过程分析

    GDB调试汇编堆栈

    准备工作

    · 终端编译工具:

    ·         编译64位Linux版本32位的二进制文件,需要安装一个库,使用指令sudo apt-get install libc6-dev-i386

    分析过程

    ·         1.生成汇编代码:gcc -g test.c -o test -m32

    ·         2.调试:gdb test

    ·        

    ·         3.设置断点,因为目的是分析而不是调试bug,所以我们将断点设置在main函数

    ·        

    ·         4.开始gdb调试:r(un),如若想获取此时的汇编代码,可用指令:disassemble

    ·        

    · 5.此时可以用指令查看寄存器的值:i(nfo) r(egisters),显示的格式为3列:

    ·

    ·        

    1列:寄存器名称

    ·         第2列:寄存器的地址

    ·         第3列:寄存器中存的值  

    · 6:结合display命令和寄存器或pc内部变量,做如下设置:display /i $pc,这样在每次执行下一条汇编语句时,都会显示出当前执行的语句。下面展示每一步时%esp、%ebp和堆栈内容的变化:

    ·         

    过程(截图中的指令实际上是待执行指令)

    · 初始

    ·          

    · push $0x1

    ·  

     

    ·  

    · call 0x804840d  call调用f(0x804840d)

     

    · push %ebp  执行f函数,f初始化帧指针,将上一个函数的基址入栈,将当前%esp作为新基址

     

    ·  mov %esp,%ebp  分配栈空间,为传参做准备

    · 

    · pushl 0x8(%ebp)   将%esp中的8存入栈中

    ·          

    · call 0x80483db  call调用g(0x80483db)

    ·     

    · push %ebp  初始化栈指针·     

     

    · mov %esp,%ebp  分配栈空间

    ·          

    · mov 0x8(%ebp),%eax  将8存入栈

    · pop %ebp  %ebp在结束前弹栈

    ·          

    · ret   返回调用位置,结束函数

    ·          

    · add $0x4,%esp    将 %esp 与立即数 4 相加

    ·          

    · leave   返回准备栈

    ·          

    · ret  返回调用位置,结束函数

    ·          

    · add $0x4,%esp  将 %esp 与立即数 4 相加

    ·          

    · add $0x1,%eax  将 %eax 与立即数 1 相加

     

     

    附上完整调试过程

    jclemo@ubuntu:~/Desktop/GDB_test$ gcc -g test.c -o test -m32
    jclemo@ubuntu:~/Desktop/GDB_test$ ls
    test  test.c
    jclemo@ubuntu:~/Desktop/GDB_test$ gdb test
    GNU gdb (Ubuntu 7.11-0ubuntu1) 7.11
    Copyright (C) 2016 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
    and "show warranty" for details.
    This GDB was configured as "x86_64-linux-gnu".
    Type "show configuration" for configuration details.
    For bug reporting instructions, please see:
    <http://www.gnu.org/software/gdb/bugs/>.
    Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.
    For help, type "help".
    Type "apropos word" to search for commands related to "word"...
    Reading symbols from test...done.
    (gdb) b test.c:main
    Breakpoint 1 at 0x804840b: file test.c, line 19.
    (gdb) run
    Starting program: /home/jclemo/Desktop/GDB_test/test

    Breakpoint 1, main () at test.c:19
    19  return f(8) + addend3;
    (gdb) disassemble
    Dump of assembler code for function main:
       0x08048408 <+0>: push   %ebp
       0x08048409 <+1>: mov    %esp,%ebp
    => 0x0804840b <+3>: push   $0x8
       0x0804840d <+5>: call   0x80483ef <f>
       0x08048412 <+10>: add    $0x4,%esp
       0x08048415 <+13>: mov    $0x3,%edx
       0x0804841a <+18>: add    %edx,%eax
       0x0804841c <+20>: leave 
       0x0804841d <+21>: ret   
    End of assembler dump.
    (gdb) i r
    eax            0xf7fbbdbc -134496836
    ecx            0xaed89f2 183339506
    edx            0xffffd0b4 -12108
    ebx            0x0 0
    esp            0xffffd088 0xffffd088
    ebp            0xffffd088 0xffffd088
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x804840b 0x804840b <main+3>
    eflags         0x296 [ PF AF SF IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x 0xffffd088
    0xffffd088: 0x00000000
    (gdb) display /i $pc
    1: x/i $pc
    => 0x804840b <main+3>: push   $0x8
    (gdb) si
    0x0804840d 19  return f(8) + addend3;
    1: x/i $pc
    => 0x804840d <main+5>: call   0x80483ef <f>
    (gdb) i r
    eax            0xf7fbbdbc -134496836
    ecx            0xaed89f2 183339506
    edx            0xffffd0b4 -12108
    ebx            0x0 0
    esp            0xffffd084 0xffffd084
    ebp            0xffffd088 0xffffd088
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x804840d 0x804840d <main+5>
    eflags         0x296 [ PF AF SF IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /2a 0xffffd084
    0xffffd084: 0x8 0x0
    (gdb) si
    f (x=8) at test.c:13
    13 {
    1: x/i $pc
    => 0x80483ef <f>: push   %ebp
    (gdb) i r
    eax            0xf7fbbdbc -134496836
    ecx            0xaed89f2 183339506
    edx            0xffffd0b4 -12108
    ebx            0x0 0
    esp            0xffffd080 0xffffd080
    ebp            0xffffd088 0xffffd088
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x80483ef 0x80483ef <f>
    eflags         0x296 [ PF AF SF IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /3a 0xffffd080
    0xffffd080: 0x8048412 <main+10> 0x8 0x0
    (gdb) si
    0x080483f0 13 {
    1: x/i $pc
    => 0x80483f0 <f+1>: mov    %esp,%ebp
    (gdb) i r
    eax            0xf7fbbdbc -134496836
    ecx            0xaed89f2 183339506
    edx            0xffffd0b4 -12108
    ebx            0x0 0
    esp            0xffffd07c 0xffffd07c
    ebp            0xffffd088 0xffffd088
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x80483f0 0x80483f0 <f+1>
    eflags         0x296 [ PF AF SF IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /4a 0xffffd07c
    0xffffd07c: 0xffffd088 0x8048412 <main+10> 0x8 0x0
    (gdb) si
    14  return g(x + addend2);
    1: x/i $pc
    => 0x80483f2 <f+3>: mov    0x804a01c,%edx
    (gdb) i r
    eax            0xf7fbbdbc -134496836
    ecx            0xaed89f2 183339506
    edx            0xffffd0b4 -12108
    ebx            0x0 0
    esp            0xffffd07c 0xffffd07c
    ebp            0xffffd07c 0xffffd07c
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x80483f2 0x80483f2 <f+3>
    eflags         0x296 [ PF AF SF IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /5a 0xffffd07c
    0xffffd07c: 0xffffd088 0x8048412 <main+10> 0x8 0x0
    0xffffd08c: 0xf7e22637
    (gdb) si
    0x080483f8 14  return g(x + addend2);
    1: x/i $pc
    => 0x80483f8 <f+9>: mov    0x8(%ebp),%eax
    (gdb) i r
    eax            0xf7fbbdbc -134496836
    ecx            0xaed89f2 183339506
    edx            0x2 2
    ebx            0x0 0
    esp            0xffffd07c 0xffffd07c
    ebp            0xffffd07c 0xffffd07c
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x80483f8 0x80483f8 <f+9>
    eflags         0x296 [ PF AF SF IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /6a 0xffffd07c
    0xffffd07c: 0xffffd088 0x8048412 <main+10> 0x8 0x0
    0xffffd08c: 0xf7e22637 0x1
    (gdb) si
    0x080483fb 14  return g(x + addend2);
    1: x/i $pc
    => 0x80483fb <f+12>: add    %edx,%eax
    (gdb) i r
    eax            0x8 8
    ecx            0xaed89f2 183339506
    edx            0x2 2
    ebx            0x0 0
    esp            0xffffd07c 0xffffd07c
    ebp            0xffffd07c 0xffffd07c
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x80483fb 0x80483fb <f+12>
    eflags         0x296 [ PF AF SF IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x/5a 0xffffd07c
    0xffffd07c: 0xffffd088 0x8048412 <main+10> 0x8 0x0
    0xffffd08c: 0xf7e22637
    (gdb) si
    0x080483fd 14  return g(x + addend2);
    1: x/i $pc
    => 0x80483fd <f+14>: push   %eax
    (gdb) i r
    eax            0xa 10
    ecx            0xaed89f2 183339506
    edx            0x2 2
    ebx            0x0 0
    esp            0xffffd07c 0xffffd07c
    ebp            0xffffd07c 0xffffd07c
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x80483fd 0x80483fd <f+14>
    eflags         0x206 [ PF IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /5a 0xffffd07c
    0xffffd07c: 0xffffd088 0x8048412 <main+10> 0x8 0x0
    0xffffd08c: 0xf7e22637
    (gdb) si
    0x080483fe 14  return g(x + addend2);
    1: x/i $pc
    => 0x80483fe <f+15>: call   0x80483db <g>
    (gdb) i r
    eax            0xa 10
    ecx            0xaed89f2 183339506
    edx            0x2 2
    ebx            0x0 0
    esp            0xffffd078 0xffffd078
    ebp            0xffffd07c 0xffffd07c
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x80483fe 0x80483fe <f+15>
    eflags         0x206 [ PF IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /5a 0xffffd078
    0xffffd078: 0xa 0xffffd088 0x8048412 <main+10> 0x8
    0xffffd088: 0x0
    (gdb) si
    g (x=10) at test.c:8
    8 {
    1: x/i $pc
    => 0x80483db <g>: push   %ebp
    (gdb) i r
    eax            0xa 10
    ecx            0xaed89f2 183339506
    edx            0x2 2
    ebx            0x0 0
    esp            0xffffd074 0xffffd074
    ebp            0xffffd07c 0xffffd07c
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x80483db 0x80483db <g>
    eflags         0x206 [ PF IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /5a 0xffffd074
    0xffffd074: 0x8048403 <f+20> 0xa 0xffffd088 0x8048412 <main+10>
    0xffffd084: 0x8
    (gdb) si
    0x080483dc 8 {
    1: x/i $pc
    => 0x80483dc <g+1>: mov    %esp,%ebp
    (gdb) i r
    eax            0xa 10
    ecx            0xaed89f2 183339506
    edx            0x2 2
    ebx            0x0 0
    esp            0xffffd070 0xffffd070
    ebp            0xffffd07c 0xffffd07c
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x80483dc 0x80483dc <g+1>
    eflags         0x206 [ PF IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /5a 0xffffd070
    0xffffd070: 0xffffd07c 0x8048403 <f+20> 0xa 0xffffd088
    0xffffd080: 0x8048412 <main+10>
    (gdb) si
    9  return x + addend1;
    1: x/i $pc
    => 0x80483de <g+3>: movzwl 0x804a018,%eax
    (gdb) i r
    eax            0xa 10
    ecx            0xaed89f2 183339506
    edx            0x2 2
    ebx            0x0 0
    esp            0xffffd070 0xffffd070
    ebp            0xffffd070 0xffffd070
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x80483de 0x80483de <g+3>
    eflags         0x206 [ PF IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /5a 0xffffd070
    0xffffd070: 0xffffd07c 0x8048403 <f+20> 0xa 0xffffd088
    0xffffd080: 0x8048412 <main+10>
    (gdb) si
    0x080483e5 9  return x + addend1;
    1: x/i $pc
    => 0x80483e5 <g+10>: movswl %ax,%edx
    (gdb) i r
    eax            0x1 1
    ecx            0xaed89f2 183339506
    edx            0x2 2
    ebx            0x0 0
    esp            0xffffd070 0xffffd070
    ebp            0xffffd070 0xffffd070
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x80483e5 0x80483e5 <g+10>
    eflags         0x206 [ PF IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /5a 0xffffd070
    0xffffd070: 0xffffd07c 0x8048403 <f+20> 0xa 0xffffd088
    0xffffd080: 0x8048412 <main+10>
    (gdb) si
    0x080483e8 9  return x + addend1;
    1: x/i $pc
    => 0x80483e8 <g+13>: mov    0x8(%ebp),%eax
    (gdb) i r
    eax            0x1 1
    ecx            0xaed89f2 183339506
    edx            0x1 1
    ebx            0x0 0
    esp            0xffffd070 0xffffd070
    ebp            0xffffd070 0xffffd070
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x80483e8 0x80483e8 <g+13>
    eflags         0x206 [ PF IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /5a 0xffffd070
    0xffffd070: 0xffffd07c 0x8048403 <f+20> 0xa 0xffffd088
    0xffffd080: 0x8048412 <main+10>
    (gdb) si
    0x080483eb 9  return x + addend1;
    1: x/i $pc
    => 0x80483eb <g+16>: add    %edx,%eax
    (gdb) i r
    eax            0xa 10
    ecx            0xaed89f2 183339506
    edx            0x1 1
    ebx            0x0 0
    esp            0xffffd070 0xffffd070
    ebp            0xffffd070 0xffffd070
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x80483eb 0x80483eb <g+16>
    eflags         0x206 [ PF IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /5a 0xffffd070
    0xffffd070: 0xffffd07c 0x8048403 <f+20> 0xa 0xffffd088
    0xffffd080: 0x8048412 <main+10>
    (gdb) si
    10 } 
    1: x/i $pc
    => 0x80483ed <g+18>: pop    %ebp
    (gdb) i r
    eax            0xb 11
    ecx            0xaed89f2 183339506
    edx            0x1 1
    ebx            0x0 0
    esp            0xffffd070 0xffffd070
    ebp            0xffffd070 0xffffd070
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x80483ed 0x80483ed <g+18>
    eflags         0x202 [ IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /5a 0xffffd070
    0xffffd070: 0xffffd07c 0x8048403 <f+20> 0xa 0xffffd088
    0xffffd080: 0x8048412 <main+10>
    (gdb) si
    0x080483ee 10 } 
    1: x/i $pc
    => 0x80483ee <g+19>: ret   
    (gdb) i r
    eax            0xb 11
    ecx            0xaed89f2 183339506
    edx            0x1 1
    ebx            0x0 0
    esp            0xffffd074 0xffffd074
    ebp            0xffffd07c 0xffffd07c
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x80483ee 0x80483ee <g+19>
    eflags         0x202 [ IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /5a 0xffffd074
    0xffffd074: 0x8048403 <f+20> 0xa 0xffffd088 0x8048412 <main+10>
    0xffffd084: 0x8
    (gdb) si
    0x08048403 in f (x=8) at test.c:14
    14  return g(x + addend2);
    1: x/i $pc
    => 0x8048403 <f+20>: add    $0x4,%esp
    (gdb) i r
    eax            0xb 11
    ecx            0xaed89f2 183339506
    edx            0x1 1
    ebx            0x0 0
    esp            0xffffd078 0xffffd078
    ebp            0xffffd07c 0xffffd07c
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x8048403 0x8048403 <f+20>
    eflags         0x202 [ IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /5a 0xffffd078
    0xffffd078: 0xa 0xffffd088 0x8048412 <main+10> 0x8
    0xffffd088: 0x0
    (gdb) si
    15 }
    1: x/i $pc
    => 0x8048406 <f+23>: leave 
    (gdb) i r
    eax            0xb 11
    ecx            0xaed89f2 183339506
    edx            0x1 1
    ebx            0x0 0
    esp            0xffffd07c 0xffffd07c
    ebp            0xffffd07c 0xffffd07c
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x8048406 0x8048406 <f+23>
    eflags         0x282 [ SF IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /5a 0xffffd07c
    0xffffd07c: 0xffffd088 0x8048412 <main+10> 0x8 0x0
    0xffffd08c: 0xf7e22637
    (gdb) si
    0x08048407 15 }
    1: x/i $pc
    => 0x8048407 <f+24>: ret   
    (gdb) i r
    eax            0xb 11
    ecx            0xaed89f2 183339506
    edx            0x1 1
    ebx            0x0 0
    esp            0xffffd080 0xffffd080
    ebp            0xffffd088 0xffffd088
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x8048407 0x8048407 <f+24>
    eflags         0x282 [ SF IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /5a 0xffffd080
    0xffffd080: 0x8048412 <main+10> 0x8 0x0 0xf7e22637
    0xffffd090: 0x1
    (gdb) si
    0x08048412 in main () at test.c:19
    19  return f(8) + addend3;
    1: x/i $pc
    => 0x8048412 <main+10>: add    $0x4,%esp
    (gdb) i r
    eax            0xb 11
    ecx            0xaed89f2 183339506
    edx            0x1 1
    ebx            0x0 0
    esp            0xffffd084 0xffffd084
    ebp            0xffffd088 0xffffd088
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x8048412 0x8048412 <main+10>
    eflags         0x282 [ SF IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /5a 0xffffd084
    0xffffd084: 0x8 0x0 0xf7e22637 0x1
    0xffffd094: 0xffffd124
    (gdb) si
    0x08048415 19  return f(8) + addend3;
    1: x/i $pc
    => 0x8048415 <main+13>: mov    $0x3,%edx
    (gdb) i r
    eax            0xb 11
    ecx            0xaed89f2 183339506
    edx            0x1 1
    ebx            0x0 0
    esp            0xffffd088 0xffffd088
    ebp            0xffffd088 0xffffd088
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x8048415 0x8048415 <main+13>
    eflags         0x286 [ PF SF IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /5a 0xffffd088
    0xffffd088: 0x0 0xf7e22637 0x1 0xffffd124
    0xffffd098: 0xffffd12c
    (gdb) si
    0x0804841a 19  return f(8) + addend3;
    1: x/i $pc
    => 0x804841a <main+18>: add    %edx,%eax
    (gdb) i r
    eax            0xb 11
    ecx            0xaed89f2 183339506
    edx            0x3 3
    ebx            0x0 0
    esp            0xffffd088 0xffffd088
    ebp            0xffffd088 0xffffd088
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x804841a 0x804841a <main+18>
    eflags         0x286 [ PF SF IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /5a 0xffffd088
    0xffffd088: 0x0 0xf7e22637 0x1 0xffffd124
    0xffffd098: 0xffffd12c
    (gdb) si
    20 }
    1: x/i $pc
    => 0x804841c <main+20>: leave 
    (gdb) i r
    eax            0xe 14
    ecx            0xaed89f2 183339506
    edx            0x3 3
    ebx            0x0 0
    esp            0xffffd088 0xffffd088
    ebp            0xffffd088 0xffffd088
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x804841c 0x804841c <main+20>
    eflags         0x202 [ IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /5a 0xffffd088
    0xffffd088: 0x0 0xf7e22637 0x1 0xffffd124
    0xffffd098: 0xffffd12c
    (gdb) si
    0x0804841d 20 }
    1: x/i $pc
    => 0x804841d <main+21>: ret   
    (gdb) i r
    eax            0xe 14
    ecx            0xaed89f2 183339506
    edx            0x3 3
    ebx            0x0 0
    esp            0xffffd08c 0xffffd08c
    ebp            0x0 0x0
    esi            0xf7fba000 -134504448
    edi            0xf7fba000 -134504448
    eip            0x804841d 0x804841d <main+21>
    eflags         0x202 [ IF ]
    cs             0x23 35
    ss             0x2b 43
    ds             0x2b 43
    es             0x2b 43
    fs             0x0 0
    gs             0x63 99
    (gdb) x /5a 0xffffd08c
    0xffffd08c: 0xf7e22637 0x1 0xffffd124 0xffffd12c
    0xffffd09c: 0x0
    (gdb) si
    0xf7e22637 in __libc_start_main () from /lib32/libc.so.6
    1: x/i $pc
    => 0xf7e22637 <__libc_start_main+247>: add    $0x10,%esp
    (gdb)

  • 相关阅读:
    PS 色调——颜色运算
    [ExtJS5学习笔记]第二十二节 Extjs5中使用beforeLabelTpl配置给标签增加必填选项星号标志
    [ExtJS5学习笔记]第二十一节 Extjs5中使用config配置给ext.widget或者create方法传递参数
    PS 滤镜——素描算法(一)
    [ExtJS5学习笔记]第二十节 Extjs5配合数组的push方法,动态创建并加载组件
    [ExtJS5学习笔记]第十九节 Extjs5中通过设置form.Panel的FieldSet集合属性控制多个field集合
    【翻译】Ext JS最新技巧——2014-9-10
    Ext JS 5的声明式事件监听
    BZOJ_3477_[Usaco2014 Mar]Sabotage_二分答案
    BZOJ_3012_[Usaco2012 Dec]First!_trie树+拓扑排序
  • 原文地址:https://www.cnblogs.com/Jclemo/p/6138069.html
Copyright © 2011-2022 走看看