接着我们看一下从机器级层面对代码进行调试,查看程序的运行情况:
(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)