我正在通读《Unix 环境高级编程》一书,并逐步完成 i/o 缓冲部分。
为了帮助我理解缓冲,如果我可以在简单的 c 应用程序中调试和监视缓冲区以更好地了解缓冲的实现方式,那将会很有用。我的简单 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 库源代码附加到我的调试 session ,然后单步执行 i/o 库代码。是否可以在 c 中做类似的事情,以便我可以看到当我调用 fprintf()
或其他一些 i/o 方法时会发生什么?
使用 eclipse CDT,我可以从我的代码导航到 fprintf()
函数调用,但它只会将我带到 stdio.h 中似乎是宏定义的地方:
int _EXFUN(fprintf, (FILE *, const char *, ...)
_ATTRIBUTE ((__format__ (__printf__, 2, 3))));
最佳答案
在 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
关于c - 如何调试我的 C 应用程序的 I/O 缓冲?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18751818/