在下面的代码中设置printf上的断点(在eclispe中),在调试期间,执行不会在scanf处停止以获取x的值,而是直接仅在printf语句处停止。因此在调试期间无法输入x。
int main(void) {
int x;
scanf("%d", &x);
printf("Entered value of x is : %d \n", x);
return EXIT_SUCCESS;
}
答案 0 :(得分:1)
如果使用优化进行编译,请尝试禁用它(使用 gcc - 将-Ox
更改为-O0
)。
启用优化后,为连续的源代码行生成的汇编代码可能会被洗牌,因此当您尝试" Step Into"通过printf
行,光标位置将返回scanf
。