Linux学习日记7——GDB调试
作者:互联网
目录
一、C程序代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10
char *str = "hello";
int var = 0;
void init_arr(int *arr, int len)
{
int i = 0;
for(i = 0; i < len; i++) {
arr[i] = rand() % 20 + 1;
}
}
void select_sort(int *arr, int len)
{
int i, j, k, temp;
for(int i = 0; i < len - 1; i++) {
k = i;
for(j = i+1; j < len; j++) {
if(arr[k] > arr[j])
k = j;
}
if(i != k) {
temp = arr[i];
arr[i] = arr[k];
arr[k] = temp;
}
}
}
void print_arr(int *arr, int len)
{
int i;
for(i = 0; i < len; i++)
{
printf("arr[%d] = %d\n", i, arr[i]);
}
}
int main(void)
{
int arr[N];
char *p = "hello";
srand(time(NULL));
init_arr(arr, N);
print_arr(arr, N);
select_sort(arr, N);
printf("-----after sort----");
print_arr(arr, N);
return 0;
}
二、GDB调试
2.1 编译文件
# -g 包含调试信息
gcc gdbtest.c -o gdbtest -g
2.2 进入GDB调试
gdb gdbtest
2.3 GDB中打印源码
# 使用 list 或者简写 l
# list(l) 1 表示从第一行开始打印
# list(l) 继续显示上面没显示完的代码
2.4 设置断点
# 使用 break 或者简写 b
# break(b) 行号
2.5 运行程序
# 使用 run 或者简写 r
2.6 继续执行
# next 越过函数 简写为 n
# s 执行函数
# 系统函数只能用 n 跳过
2.7 查看变量值
# print 输出变量值 简写为 p
# print(p) 变量值
2.8 继续执行到下一个断点
# continue
2.9 退出
# quit
标签:arr,int,len,GDB,Linux,print,简写,调试 来源: https://blog.csdn.net/HuanBianCheng27/article/details/123609045