Unix 环境编程工具(3)——gdb
Unix 环境编程工具(2)——Make
我们编写的程序可能会出现 bug。尽管找出这些 bug 的方法很多,但是好的调试器会让这个工作更容易。多数有一定规模的程序,
Unix 环境编程工具(1)——GCC Unix 环境编程工具(2)——Make 我们编写的程序可能会出现 bug。尽管找出这些 bug 的方法很多,但是好的调试器会让这个工作更容易。多数有一定规模的程序,都不可能盯着源代码就找出 bug,我们需要程序运行时的线索来找到 bug。因此花点时间来学习调试器是值得的。 GDB 我们推荐 gdb(GNU debugger),因为它可以很好和 gcc 编译器结合。尽管 gdb 没有图形界面,它仍然是强大的工具,可以给熟悉它的程序员提供需要的信息。 这一部分没有完全覆盖 gdb 的所有功能,但是会讲到重要的内容。gdb 有在线帮助文档,可以查询有用的命令。 启动 gdb 和 make 一样,有两种方式调用 gdb,可以在 shell 中启动unix系统编程,只需要输入 gdb 需要调试程序名 gdb program 如果不指定文件名,gdb会直接启动,然后启动后可以指定一个需要调试的文件,再继续调试;我们也可以在 emacs 中调用 gdb,[Esc]-x gdb 。 运行 gdb gdb 启动后会加载调试程序的符号表(变量名、源代码文件等信息)。这个符号表是 gcc 编译器 -g 选项生成的映射。调试器是交互式的程序,开始后会提示我们输入命令,最常用的命令有:设置断点,单步调试,断点继续,检查变量值等。 调试策略 有的人不想多学习一个工具而避免使用调试器。这样是不正确的,花点时间来学习调试器吧,它会让你更加高效地找到问题。 有时bug导致的崩溃会让你的程序停止并输出类似“Segmentation Violation”的内容。如果你的程序这样崩溃了,调试器可以捕获处理器发出的错误信号,让你可以检查程序的状态。很多时候,调试器可以告诉你程序崩溃时的状态。 bug 也可能不会直接导致崩溃,但是会导致程序的内部问题。这种情况下,在程序异常的地方断点调试,然后可以查看到断点的数据和控制路径,什么情况会导致异常。 另一种方式时在程序异常前设置断点,然后继续向出现异常的地方执行,逐步检查问题。 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |