我已下载glibc
(GNU c
库)的源代码,版本为2.15.90。我正在追踪printf()
函数的代码。我使用工具cscope
和ctags
来浏览代码。以下是我遍历以了解printf()
函数的路径。 (这里,我只是提到函数调用): -
1. Opening file "glibc/stdio-common/printf.c"
2. int __printf (const char *format, ...)
3. __extern_always_inline int vfprintf (FILE *__restrict __stream, const char *__restrict __fmt, _G_va_list __ap)
4. int attribute_hidden __vfprintf_chk (FILE *s, int flag, const char *fmt, va_list ap)
5. int attribute_compat_text_section __nldbl___vfprintf_chk (FILE *s, int flag, const char *fmt, va_list ap)
一旦我达到函数\__nldbl___vfprintf_chk()
,就会调用__vfprintf_chk()
,因此最后2个函数(在第4点和第5点中提到)互相调用。我哪里出错了?