At 08:14 AM 12/18/2002, Philip Martin wrote: >"William A. Rowe, Jr." <[EMAIL PROTECTED]> writes: > >> What I would like to know (if you can track it...) >> >> Is it possible to dump the finfo structure within gdb at the point this >> request fails? I'd pay especially close attention to the .valid bits, since >> those are the identifiers that will help us determine if stat() was also >> called later. > >This is for dir.c version 1.71 with the patch reverted. The >Subversion code is svn_io_get_dirents in subversion/libsvn_subr/io.c, >it passes APR_FINFO_TYPE | APR_FINFO_NAME to apr_dir_read. The first >two calls to apr_dir_read return "." and ".." and the Subversion code >skips them, the following gdb information is for the third call > >(gdb) s >apr_dir_read (finfo=0xbffff660, wanted=33587200, thedir=0x809a878) at dir.c:174 >174 apr_status_t ret = 0; >(gdb) n >179 ret = readdir_r(thedir->dirstruct, thedir->entry, &retent); >(gdb) >184 if(!ret && thedir->entry != retent) >(gdb) p ret >$1 = 0 >(gdb) p thedir->entry[0] >$2 = {d_ino = 186434, d_off = 13512064, d_reclen = 16, d_type = 0 '\0', > d_name = "..", '\0' <repeats 253 times>}
Philip... thanks. Now for the oddball question, looking at dirent.h or it's associate sys/ includes, what symbol DT_xxx (DT_REG, etc) do you find for value 0? Also, what values do you have for DIRENT_TYPE, DIRENT_INODE from apr/include/arch/unix/apr_private.h? Thanks again, Bill