一、操作系统概述
1、Linux内核主要模块:进程调度(SCHED分三个策略:other、fifo、rr)、内存管理(MMU)、虚拟文件系统(VFS)、网络接口(网络协议、驱动程序)、进程间通信(管道方式、信号方式、消息队列方式、共享内存方式、套接字)
2、文件结构
二、编程环境
一、vim基础知识
修改配置在/etc/vim/vimrc文件中修改,添加
set shiftwidth=2
set tabstop=2
set number
常用命令(命令行模式)
删除某个字符x
删除一行dd
恢复删除u
取消上一个命令ctrl + r
复制y2w 复制两个单词(不是字母)
粘贴p
查找字符串 :/xxx
跳转到某一行 :5 即第五行
二、gcc编译以及cmake文件编写
https://blog.csdn.net/KNOW_MORE/article/details/89151906
三、gdb调试
0.编译程序时 gcc -o test test.c -g 需加入-g
1.执行程序
1)gdb test
2)先开gdb 然后直接执行file test
2.设置、显示参数
set args 3
show args
*按下enter键执行上一条命令
3.列出源代码
list 或者 list n 或者 list n,m //n、m为行数 (list简写为l也可以)
4.打印数据
print var (print可简写为p)
打印数组的值或者结构体的值:p *io@2
在断点或程序结束后,显示某个变量的值 display 变量名
5.断点
在某一行m设置断点: b m
在某一行m设置条件断点:b m if i==2
显示断点信息:info break(简写为 info b)
删除第m行的断点:delete b m
删除n到m行的断点:delete n-m
禁止第m行的断点:disable b m
允许第m行的断点:enable b m
清除某行断点:clear m
清除一个函数所有的断点: clear main
继续运行: c
6.变量类型检测
在程序运行过程中,
whatis 变量名 //查看变量类型
ptype 变量名 //查看变量的详细信息,如结构体的声明
7.单步调试
next(简写n) //单步执行跟踪
step(简写s) //进入函数体
finish //返回调用的函数
8.多线程
用info thread命令列出当前进程的线程ID,再用thread id进入需要调试的线程