使用GDB进行调试时在C中调用用户定义的函数后无输出

时间:2016-11-23 16:34:25

标签: gdb

使用gdb进行调试时,我将nc_print函数称为
(gdb)call nc_print()但没有输出,也没有警告。

void nc_print()
{
     printf("ramanuj\n");
}

我发现gdb无法调用nc_print。我不明白为什么会这样。我可能知道可能的原因。

1 个答案:

答案 0 :(得分:1)

  

我发现gdb无法调用nc_print。

GDB未调用nc_print的结论可能是错误的。如果您将abort()的通话添加到nc_print,您的计划是否会中止?如果是这样,您的结论 错误。

  

我不明白为什么会这样?

最有可能发生的事情是你的下级(被调试)程序将stdout重定向到文件(或管道),因此完全缓冲

如果您添加fflush(stdout)或使用fprintf(stderr, "ramanuj\n"),事情可能会像预期的那样发挥作用。