拖了好久了,今天继续之前的 GDB 教程系列。
在学会了使用 GDB 启动调试、设置调试断点、查看变量值等基础知识后,工作中经常需要使用的 GDB 核心功能便是:调试程序 (即:灵活地控制和跟进程序的执行流程)。
在 GDB 下使用 wi
命令可启动可视化调试。为了便于演示,本文使用 GDB 的可视化调试模式行对下面的简单 demo 进行调试举例。
#include<stdio.h>
#include<stdlib.h>
void swapper(int *a, int *b)
{
int c = *a;
*a = *b;
*b = c;
printf("swapped!\n");
}
int main(int argc, char *argv[])
{
int i = 4, j = 6;
printf("i: %d, j: %d\n", i, j);
swapper(&i, &j);
printf("i: %d, j: %d\n", i, j);
int n = 65535;
while (n--)
{
printf("n: %d\n", n);
}
printf("finish\n");
return 0;
}
假设上述 demo 程序被 GDB 启动并暂停在第 14 行。
(1) next 命令
可以使用 next
命令 (缩写形式 n
) 继续执行下一行语句。next 6
表示一次性执行 6 次 next
命令,即从当前暂停的语句处往下执行 6 条语句。