最近需要在linux上使用c++开发后台服务器程序。原先使用Python很顺手,但是基于项目需求的原因需要转到c++开发,后者优点是效率高,缺点是技术难度大,最要命的是调试难度比python要大很多,于是我又不得不把GDB应用的一些知识点捡起来。
在linux上调试c++代码比windows痛苦的多,因为后者有visual studio这个宇宙第一好用的IDE存在,基于命令行的linux唯一的选择就是GDB,你需要记住很多命令,在用户界面下的很多简单调试功能,例如查看变量值等只不过挪动一下鼠标即可,但是在gdb下你需要输出不少命令,好在一旦这些命令熟悉了,使用GDB的效率就会大大提高。因此我借此把GDB的使用心得或学习内容记录下来,以后需要的时候还能查看。
我们先使用一段示例代码来发起GDB调试流程:
#include "stdio.h"
#include "stdlib.h"
//x数组用于将接收的字符型数字转换为整形
//y数组用于排序插入
int x[10], y[10], num_inputs, num_y = 0;
void get_args(int ac, char **av) { //该函数将命令行输入参数从字符转换为数字并存储在数字x中
int i;
num_inputs = ac - 1;
for (i = 0; i < num_inputs; i++) {
x[i] = atoi(av[i+1]);
}
}
void scoot_over(int jj) {//执行插入排序,将数组y中元素向右移动把位置空出来给新的元素
int k;
for (k = num_y - 1; k > jj; k++) {
y[k] = y[k-1];
}
}
void insert(int new_y) {//获得新的要插入的数值然后插入到数值y
int j;
if (num_y = 0) { //problem here
y[0] = new_y;
return;
}
for (j = 0; j < num_y; j+