下面是写的一段测试代码,用gdb跟踪的结果,gdb甚至可以对跟踪的变量运算后再输出:
1 #include "stdio.h"
2 int main()
3 {
4 char *a=NULL;
5
6 if (!a){
7 printf("AA\n");
8 }
9
10
(gdb) b 4
Breakpoint 1 at 0x40052c: file main.c, line 4.
(gdb) s
The program is not being run.
(gdb) r
Starting program: /home/yjbo/temp/main
Breakpoint 1, main () at main.c:4
4 char *a=NULL;
(gdb) n
6 if (!a){
(gdb) p a
$1 = 0x0
(gdb) p !a
$2 = 1
(gdb) p !a+1
$3 = 2