在编译程序生成可执行文件之后,就进入了程序的调试环节。在程序中可能会有很多错误需要进行调试。Linux系统中包含了GNU调试程序GDB(GNU DeBugger),它是一个用来调试C和C++程序的调试器。GDB的高级特性会使得搜索错误更加高效。可以使程序开发者在程序运行时观察程序的内部结构和内存的使用情况。使用GDB的优点还在于GDB支持嵌入式软件的交叉编译开发模式。当运行GDB的Linux平台通过串行端口连接到目标板时,GDB可以对运行在目标板上的应用程序进行调试。
GDB所提供的一些功能如下所示:
1)启动程序,设置所有能影响程序运行的参数和环境。
2)能够让程序在指定断点处停止。
3)能够在程序停止时检查所有参数的情况。
4)能够根据指定条件改变程序的运行。
6)可以单步执行代码,观察程序的运行状态。
需要注意的是,GDB调试的是可执行文件,而不是源程序。如果想让GDB调试编译后生成可执行文件,则在使用GDB工具调试程序之前必须使用带有-g或-GDB编译选项的GCC命令来编译源程序。下面是GDB的一些基本命令。
●file:装入想要调试的可执行文件。
●kill:终止正在调试的程序。
●list:列出产生执行文件的源代码的一部分。
●next:执行一行源代码,但不进入函数内部。
●step:执行一行源代码,而且进入函数内部。(www.xing528.com)
●run:执行当前被调试的程序。
●quit:终止。
●gdbwatch:监视一个变量的值,而不管它何时被改变。
●break:在代码里设置断点,这将使程序执行到这里时被挂起。
●make:不退出GDB就可以重新产生可执行文件。
●Shell:不离开GDB就执行UNIXShell命令。
GDB可以运行在许多模式下,这些模式是GDB运行时在命令行作为选项指定的。下面是对这些模式的详细介绍。
●-nx或-n:不执行任何初始化文件中的命令。一般情况下,在这个文件中的命令会将所有的命令行参数传给GDB后执行。
●-quiet或-q:安静模式。不输出介绍和版本信息。
●-batch:批处理模式。当批处理命令文件中的所有命令都被执行后,GDB将返回状态0。如果执行过程出错,将返回非0。
●-cdDIRECTORY:把DIRECTORY作为GDB的工作目录,这时工作目录不再是当前目录。
●tty设备名:使用其他设备作为程序的标准输入输出。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。