我正在尝试使用以下代码在 Eclipse 中调试 c:
void print_clause(SAT_clause * c) {
int l_index;
printf("(");
for (l_index = 0; l_index < c->literal_count; l_index++) {
print_literal(c->literal_arr[l_index]);
if(l_index != c->literal_count - 1){
printf(" v ");
}
}
printf(")");
}
但是每次我到达"printf("(");"
(此功能中的第一个打印)时,我都会在控制台中收到下一条消息:
(*stopped,reason="end-stepping-range"...
而且我不能再踩了。我认为这是dbg
eclipse 不能很好地解析的消息。我在某个地方读到了我需要\n
在函数末尾添加的内容printf
——确实有效,但最后我需要printf
没有\n
。如果我在发布模式下运行 - 打印正常。
我做错了什么,我该如何继续跟进printf
?
更新好的 - 我发现了导致这种行为的原因(但我仍然有问题) - 这是因为这个链接:printf not print on console。我添加了 setbuf(stdout, NULL); 用于在调试中启用打印,但我无法执行。如果我删除这个 setbuf(stdout, NULL); 由于缓冲区,我在调试模式下看不到 printf(但我可以继续单步执行)。有什么建议吗?