为什么使用gdb要先进入change函数不能才能使用bt看到两个栈,如果跳出change就只能看见main的栈了,还有s到底怎么用,是查看上一级的函数么
栈用来记录代码运行到断点处时,此时正在运行的函数的状态信息,比如:函数形参、局部变量值等。只有当你运行某个函数时,栈才会把这个函数的相关信息存储起来。进入change函数,就会把change函数的相关状态保存,退出change函数时,就会将保存的信息清除
如果main函数的某行代码是调用change函数,s就会进入change函数内部;如果没有s命令,就直接调用change函数且返回,进入main代码行的下一行。