int main(void)
{
char A[] ='hi';
struct dayInfo day;
int x = 1;
}
所以在gdb中我做了
gdb> breakpoint main
gdb> run
输出:
Breakpoint 1 , main() line 1
char A[]= 'hi';
gdb> step
输出:
int x = 1; line 3
问:刚刚开始学习GDB
,我不明白为什么'step'命令会跳到
int x = 1; line 3.
为什么不是struct dayInfo day;
?
答案 0 :(得分:6)
声明局部变量时,不执行任何代码。编译器通过创建更大的堆栈帧来考虑声明,因此在输入函数时有效地执行变量声明。没有代码,gdb可以在第1行和第3行之间停止,因此它会继续到下一行。