CSCW2-Newly To Assembly

进行机器级代码调试

接着我们看一下从机器级层面对代码进行调试,查看程序的运行情况:

(gdb) b 12
Breakpoint 1 at 0x400516: file add.c, line 12.
(gdb) r
Starting program: /home/heamon7/Project/test/add

Breakpoint 1, main (argc=1, argv=0x7fffffffe658) at add.c:12
12        a = 1;
(gdb) si
13        b = 2;
(gdb)
14        result = add(a,b);
(gdb)
0x0000000000400527    14        result = add(a,b);
(gdb)
0x000000000040052a    14        result = add(a,b);
(gdb)
0x000000000040052c    14        result = add(a,b);
(gdb)
0x000000000040052e    14        result = add(a,b);
(gdb)
add (a=0, b=0) at add.c:1
1    int add(int a, int b) {
(gdb)
0x00000000004004ee    1    int add(int a, int b) {
(gdb)
0x00000000004004f1    1    int add(int a, int b) {
(gdb)
0x00000000004004f4    1    int add(int a, int b) {
(gdb)
4        result = a + b;
(gdb)
0x00000000004004fa    4        result = a + b;
(gdb)
0x00000000004004fd    4        result = a + b;
(gdb)
0x00000000004004ff    4        result = a + b;
(gdb)
6        return result;
(gdb)
7    }
(gdb)
0x0000000000400506    7    }
(gdb)
0x0000000000400533 in main (argc=1, argv=0x7fffffffe658) at add.c:14
14        result = add(a,b);
(gdb)
16        return 0;
(gdb)
17    }
(gdb)
0x000000000040053c    17    }
(gdb)
__libc_start_main (main=0x400507 <main>, argc=1, argv=0x7fffffffe658,
    init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
    stack_end=0x7fffffffe648) at libc-start.c:321
321    libc-start.c: No such file or directory.
(gdb) c
Continuing.
[Inferior 1 (process 23945) exited normally]
(gdb)