使用gdb进行调试时,我将nc_print
函数称为
(gdb)call nc_print()
但没有输出,也没有警告。
void nc_print()
{
printf("ramanuj\n");
}
我发现gdb无法调用nc_print
。我不明白为什么会这样。我可能知道可能的原因。
答案 0 :(得分:1)
我发现gdb无法调用nc_print。
GDB未调用nc_print
的结论可能是错误的。如果您将abort()
的通话添加到nc_print
,您的计划是否会中止?如果是这样,您的结论 错误。
我不明白为什么会这样?
最有可能发生的事情是你的下级(被调试)程序将stdout
重定向到文件(或管道),因此完全缓冲
如果您添加fflush(stdout)
或使用fprintf(stderr, "ramanuj\n")
,事情可能会像预期的那样发挥作用。