如何调试我的c应用程序的i / o缓冲?

时间:2013-09-11 21:45:21

标签: c io buffer

我正在阅读“Unix环境高级编程”一书,并通过i / o缓冲部分。

为了帮助理解缓冲,如果我可以在简单的c应用程序中调试和监视缓冲区,以便更好地理解缓冲是如何实现的,那将会非常有用。我的简单应用程序:

#include <stdio.h>

int main(void)
{
    FILE * fp = fopen("c:\\Users\\snowc\\Desktop\\myc.txopen", "w");
    fprintf(fp, "Testing...\n");
    fclose(fp);
    return 0;
}

在java环境中,我可以将i / o库源代码附加到我的调试会话,然后逐步执行i / o库代码。是否有可能在c中执行类似的操作,以便我可以看到当我调用fprintf()或其他一些i / o方法时会发生什么?

使用eclipse CDT,我可以从我的代码导航到fprintf()函数调用,但它只是带我到stdio.h中的宏定义:

int _EXFUN(fprintf, (FILE *, const char *, ...)
               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));

1 个答案:

答案 0 :(得分:2)

在gdb中逐步执行GNU Debugger

$ gdb ./yourprogram
(gdb) break main.c:6
Breakpoint set at main.c line 6
(gdb) run
Breakpoint 1 hit
(gdb) step

或者,在strace中运行它:

strace ./yourprogram