崇文企业网站建设公司,wordpress 如果分类,购物网站开发需求,云南档案馆网站建设资金gdb调试工具和make/makefile工具 文章目录gdb调试工具和make/makefile工具一、gdb调试工具1.debug/release2.使用二、make/makefile1.什么是make/makefile2.编写一、gdb调试工具
1.debug/release
程序有两种默认的发布方式debug和release。release是无法进行调试的。Linux中g…gdb调试工具和make/makefile工具 文章目录gdb调试工具和make/makefile工具一、gdb调试工具1.debug/release2.使用二、make/makefile1.什么是make/makefile2.编写一、gdb调试工具
1.debug/release
程序有两种默认的发布方式debug和release。release是无法进行调试的。Linux中gcc和g编译链接得到的默认为release模式所以我们在调试前应加一个**-g**选项进行编译。
gcc test.c -o g_test -gdebug版本的可执行文件也会比release版本大一些这大的空间里面存放的就是调试信息。 2.使用
安装
sudo yum install -y gdbgdb基本操作 l 行号从指定的行号开始往下显示源代码每次显示10行 (l – list) l 函数列出某个函数的源代码 r运行程序 (r - run) b 行号在某一行打一个断点相当于VS中的F9 (b – breakpoint) info b查看断点 d 断点编号删除断点 (d – delete) r调试运行如果程序中有断点则在断点处停下来如果没有则直接将程序跑完相当于VS中的F5 (r – run) n逐过程调试相当于VS中的F10 (n – next) s逐语句调试相当于VS中的F11 (s – step) c运行至下一个断点处停下 (c – continue) bt查看调用堆栈 (breaktrace) p 变量查看变量值 (p – print) display/undisplay 变量跟踪查看一个变量每次停下来都显示它的值undisplay 取消对先前设置的那些变量的跟踪 finish把当前函数运行完 disable breakpoints禁用断点 enable breakpoints启用断点 quit退出 gdb 演示
#include stdio.h
int Add(int x, int y)
{int m x y;return m;
}int main()
{int a 10, b 20;int c Add(a, b);printf(%d\n, c);return 0;
}进入gdb后l显示代码。(l每次显示10行下次接着上次的进行显示) 按住**回车(ENTER)**也可以执行上次执行的命令。 输入r,运行代码得到结果30。 b/info b d 断点编号
删除断点。 r(有断点)
调试运行。 n逐过程调试s逐语句调试 c进到下一个断点处 bt查看调用堆栈 p/display/undisplay p : 查看变量值 display : 追踪显示变量值 undisplay : 取消追踪显示变量值 q 退出
二、make/makefile
1.什么是make/makefile
在大型的工程中源文件不计其数如果我们每个源文件都手搓编译的话是不是太麻烦且浪费时间了呢
Linux 提供了项目自动化构建工具 – makefile 来帮助我们解决这个问题makefile 定义了一系列的规则来指定如何对众多的源文件进行管理makefile带来的好处就是 – “自动化编译”即 makefile 一旦写好以后我们就只需要一个 make 命令整个工程就可以完全自动编译极大的提高了软件开发的效率。
2.编写
makefile 只是当前路径下一个普通文件编写他最重要的是依赖关系和依赖方法。
依赖关系谁依赖于谁目录下必须有依赖的那个文件。依赖方法如何根据依赖的那个文件得到目标文件 演示
mytest:test.c //依赖关系gcc test.c -o mytest //依赖方法.PHONY:clean //伪目标
clean:rm -f mytest写好makefile后我们在当前路径下执行make系统会自动查找makefile文件进行命令执行。