⭐️我叫忆_恒心,一名喜欢书写博客的在读研究生👨🎓。
如果觉得本文能帮到您,麻烦点个赞
👍呗!
近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三连支持一下呗。👍⭐️❤️
Qt5.9专栏
定期更新Qt的一些项目Demo
项目与比赛专栏
定期更新比赛的一些心得,面试项目常被问到的知识点。
Linux Web Server
项目虽然是现在C++求职者的人手一个的项目,但是想要吃透这个项目,还是需要一定的基础的,以项目为导向,进行基础的学习。
涵盖了计算机网络(网络编程)
常见的知识点和常见的操作系统知识
。
博主参加过大大小小的互联网厂和银行的秋招和春招的笔试与面试,整理了下面的2万7千字的长文(😄都是干货,写作不易啊),喜欢,觉得有帮助的,欢迎订阅专栏,后续有很多优质的文章进行更新,有任何疑问,欢迎留言!
目录
- 1、GDB调试
- 2、多进程和多线程地调试
- 3、熟悉Linux环境的常见命令
- 4、VIM 常用命令
1、GDB调试
GDB调试:gdb调试的是可执行文件,在gcc编译时加入 -g ,告诉gcc在编译时加入调试信息,这样gdb才能调试这个被编译的文件 gcc -g tesst.c -o test
GDB命令格式:
-
quit
:退出gdb,结束调试 -
list
:查看程序源代码list 5,10
:显示5到10行的代码list test.c:5, 10
: 显示源文件5到10行的代码,在调试多个文件时使用list get_sum
: 显示get_sum函数周围的代码list test,c get_sum
: 显示源文件get_sum函数周围的代码,在调试多个文件时使用 -
reverse-search
:字符串用来从当前行向前查找第一个匹配的字符串 -
run
:程序开始执行 -
help list/all
:查看帮助信息 -
break
:设置断点break 7:在第七行设置断点
break get_sum:以函数名设置断点
break 行号或者函数名 if 条件:以条件表达式设置断点
-
watch
条件表达式:条件表达式发生改变时程序就会停下来 -
next
:继续执行下一条语句 ,会把函数当作一条语句执行 -
step
:继续执行下一条语句,会跟踪进入函数,一次一条的执行函数内的代码 -
条件断点:
break if
条件 以条件表达式设置断点
2、多进程和多线程地调试
**多进程下如何调试:**用set follow-fork-mode child 调试子进程
或者set follow-fork-mode parent 调试父进程
多线程如何调试:
(gdb) info threads
//查看线程信息,当前被调试的是那个线程
(gdb) set scheduler-locking on
//不执行其他线程,锁定调试对象
(gdb)thread 2
//将调试切换到子线程,其ID为2
关于
调试进程池或线程池程序
的一个不错的方法:
先将池中的进程个数或线程个数减少至一
,以观察程序的逻辑是否正确,然后逐步增加进程或线程的数量,以调试进程或线程的同步是否正确。
例如一个程序名为prog 参数为 -l a -C abc
则,运行gcc/g++ -g prog.c/cpp -o prog
就可以用gdb调试程序prog
#gdb prog
进入gdb调试界面
输入参数命令set args 后面加上程序所要用的参数,注意,不再带有程序名,直接加参数,如:
set args -l a -C abc
**多进程下如何调试:**用set follow-fork-mode child 调试子进程
或者set follow-fork-mode parent 调试父进程
3、熟悉Linux环境的常见命令
- cd命令:用于切换当前目录
- ls命令:查看当前文件与目录
- grep命令:该命令常用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工。
- cp命令:复制命令
- mv命令:移动文件或文件夹命令
- rm命令:删除文件或文件夹命令
- ps命令:查看进程情况
- kill命令:向进程发送终止信号
- tar命令:对文件进行打包,调用gzip或bzip对文件进行压缩或解压
- cat命令:查看文件内容,与less、more功能相似
- top命令:可以查看操作系统的信息,如进程、CPU占用率、内存信息等
- pwd命令:命令用于显示工作目录。
4、VIM 常用命令
vi编辑器常用的命令
:n,m w path/filename
保存指定范围文档( n表开始行,m表结束行)
:q!
对文件做过修改后,强制退出
:q
没有对文件做过修改退出
Wq
或x
保存退出
dd
删除光标所在行
set number
显示行号
:n
跳转到n行
:s
替换字符串 😒/test/test2/g /g全局替换 /也可以用%代替
/
查找字符串
具体的使用方法:
最后,最后
如果觉得有用,麻烦三连👍⭐️❤️支持一下呀,希望这篇文章可以帮到你,你的点赞是我持续更新的动力