- Vim的三种模式:命令模式、插入模式、底行模式。
- Linux的编译器gcc的使用步骤:
预处理 | 编译 | 汇编 | 连接 |
---|
头文件展开,去注释,宏替换 | C代码转为汇编代码 | 汇编代码转为二进制代码 | 生成可执行文件或库文件 |
gcc -E test.c -o test.i | gcc -S test.i -o test.s | gcc -c test.s -o test.o | gcc test.o -o test |
- 函数库分为静态库和动态库(共享库)两种,区别为是否依赖第三方库:
静态库 | 动态库 |
---|
编译连接时,把库文件的代码拷贝一份到可执行文件中 | 在程序执行时,由运行时连接文件加载库 |
后缀一般为".a" | 后缀一般为".so" |
gcc默认生成的二进制程序是动态连接的。
[ldd]+文件名:查找连接方式;
[file]+文件名:查找文件属性。
动态连接改为静态连接:gcc test.c -o test -static.
- 程序的发布方式有两种:release版本和debug版本。
release | debug |
---|
发布版本,不可被调试 | 开发版本,添加了调试信息,可被调试 |
gcc出来的二进制,默认为release模式。
- Linux调试器gdb的使用:在源代码生成二进制程序的时候加上-g选项,
gcc test.c -o test -g.
gdb test.进入调试模式 - 常见的命令:
显示源代码:l+函数名/行号
打断点:b+行数
查看断点: info b
删除断点:d+删除断点的行数
进入程序:r
进入函数调用:s
跟踪查看一个变量:display+变量名
until+行数:进入到某一行
退出:quit .