测试代码
#include <stdio.h>
int func() {
return 3;
}
int main (int argc, char *argv[]) {
int a = 0;
a = func();
printf("%d\n", a);
return 0;
}
测试过程
使用next命令(缩写为n)不进入函数
gdb会等函数执行完,再显示下一行要执行的程序代码
使用step命令(缩写为s)可以进入函数(函数必须有调试信息)
可以看到,gdb进入了func函数
默认情况下,gdb不会进入不带调试信息的函数
首先验证一下,printf是不是带调试信息呢?使用
info functions
命令
可以看到,printf是不带调试信息的。那么,gdb就不会进入printf函数
可以使用set step-mode on
,这样gdb就不会跳过没有调试信息的函数