为了生活努力奋斗
分类: LINUX
2007-05-13 22:49:39
监视程序中变量的值变化 设置断点 单步执行代码 分析崩溃程序产生的core文件 |
gcc -ggdb3 -o test test.c |
若程序崩溃,可生成core文件来分析崩溃原因,生成core的步骤: 1、运行$ulimit -c unlimited 即编译允许使用存储信息 2、再次运行程序,就可以看到生成的core文件。 然后加载程序和core文件到GDB中,就可以分析了,在GDB中可以用(gdb)bt来获得更多的信息。 |
用命令$gdb filename filename为程序名。 |
1、设置断点:(gdb)break 表达式 如: break main 在main()处设置了断点,程序到此暂停。 还可以在某一行设置断点,break 12 在12行设置了断点。 2、执行程序:命令: run 3、单步执行:run程序后,到断点处停止,用step命令可以单步执行程序。step的快捷命令为s 4、print命令:显示表达示的值,格式为print 表达式。(注:print中命 令print $和print $$分别是显示前一个序号的值和显示前第二个序号 的值。) print命令还可以给变量赋值,格式:print 变量=表达式 还可以打印出内存某个部分开始的一块连续的内容,格式: print 开始表达式@要打印的连续内存空间的大小。 5、display命令:用来显示一些表达式的值,特别之处是每一次到断点处都会 显示(注:程序在表达式所在的函数中时),,可以用此命令跟踪一些变量的 变化. 6、next命令:与step的功能相似。在使用step时,在循环中,第一次调用函 数时都会进入,一步一步的执行,这样就显示了很多重复的信息,用next命 令可以防止发生这样的事情,不会进入方法。next的快捷命令为n. 7、用quit命令退出。 |