]> granicus.if.org Git - strace/commitdiff
Decode file type returned by getdents system call
authorDmitry V. Levin <ldv@altlinux.org>
Thu, 16 Aug 2012 19:29:55 +0000 (19:29 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Thu, 16 Aug 2012 19:29:55 +0000 (19:29 +0000)
* file.c (sys_getdents): Decode d_type in unabbreviated mode.

file.c

diff --git a/file.c b/file.c
index 6bbeb571f304217def7232183fa1ceb7df7e2809..b952e7f759244dfd780d134729ac15efc394225d 100644 (file)
--- a/file.c
+++ b/file.c
@@ -2276,8 +2276,10 @@ sys_getdents(struct tcb *tcp)
                if (!abbrev(tcp)) {
                        tprintf("%s{d_ino=%lu, d_off=%lu, ",
                                i ? " " : "", d->d_ino, d->d_off);
-                       tprintf("d_reclen=%u, d_name=\"%s\"}",
+                       tprintf("d_reclen=%u, d_name=\"%s\", d_type=",
                                d->d_reclen, d->d_name);
+                       printxval(direnttypes, buf[i + d->d_reclen - 1], "DT_???");
+                       tprints("}");
                }
                if (!d->d_reclen) {
                        tprints("/* d_reclen == 0, problem here */");