]> granicus.if.org Git - strace/commitdiff
mem: add xlat styles support to print_mmap_flags
authorShankara Pailoor <shankarapailoor@gmail.com>
Mon, 26 Nov 2018 01:10:44 +0000 (17:10 -0800)
committerDmitry V. Levin <ldv@altlinux.org>
Mon, 26 Nov 2018 02:04:04 +0000 (02:04 +0000)
* mem.c (print_mmap_flags): Respect xlat_verbosity.
* tests/mmap.c (main): Update expected output.
* tests/old_mmap.c (main): Likewise.

Co-Authored-by: Dmitry V. Levin <ldv@altlinux.org>
mem.c
tests/mmap.c
tests/old_mmap.c

diff --git a/mem.c b/mem.c
index 3e37da194bfd586f552c27d21f0f96a6b337961f..a58c1aca18e1b28346148b8e8adc1cd6def302f6 100644 (file)
--- a/mem.c
+++ b/mem.c
@@ -76,7 +76,17 @@ SYS_FUNC(brk)
 static void
 print_mmap_flags(kernel_ulong_t flags)
 {
-       printxval64(mmap_flags, flags & MAP_TYPE, "MAP_???");
+       if (xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV)
+               tprintf("%#lx", flags);
+
+       if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW)
+               return;
+
+       if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE)
+               tprints(" /* ");
+
+       printxvals_ex(flags & MAP_TYPE, "MAP_???", XLAT_STYLE_ABBREV,
+                     mmap_flags, NULL);
        flags &= ~MAP_TYPE;
 
        const unsigned int mask = MAP_HUGE_MASK << MAP_HUGE_SHIFT;
@@ -85,12 +95,16 @@ print_mmap_flags(kernel_ulong_t flags)
        flags &= ~mask;
        if (flags) {
                tprints("|");
-               printflags64(mmap_flags, flags, NULL);
+               printflags_ex(flags, NULL, XLAT_STYLE_ABBREV,
+                             mmap_flags, NULL);
        }
 
        if (hugetlb_value)
                tprintf("|%u<<MAP_HUGE_SHIFT",
                        hugetlb_value >> MAP_HUGE_SHIFT);
+
+       if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE)
+                tprints(" */");
 }
 
 static void
index f797e68522fe3fb1ec98fccceb251d7d7aae44f9..39597005bd860a5c40db9af2b43903498e86877a 100644 (file)
@@ -77,15 +77,14 @@ main(int ac, char **av)
                perror_msg_and_fail("mmap");
 #if XLAT_RAW
        printf("%s(%p, %lu, %#x, "
-              "%#x|%#x, %d, %#jx) = %p\n",
-              name, addr, length1, PROT_READ | PROT_WRITE, MAP_PRIVATE,
-              MAP_ANONYMOUS, fd, uoffset, p);
+              "%#x, %d, %#jx) = %p\n",
+              name, addr, length1, PROT_READ | PROT_WRITE,
+              MAP_PRIVATE | MAP_ANONYMOUS, fd, uoffset, p);
 #elif XLAT_VERBOSE
        printf("%s(%p, %lu, %#x /* PROT_READ|PROT_WRITE */, "
-              "%#x /* MAP_PRIVATE */|%#x /* MAP_ANONYMOUS */, %d, %#jx) "
-              "= %p\n",
-              name, addr, length1, PROT_READ | PROT_WRITE, MAP_PRIVATE,
-              MAP_ANONYMOUS, fd, uoffset, p);
+              "%#x /* MAP_PRIVATE|MAP_ANONYMOUS */, %d, %#jx) = %p\n",
+              name, addr, length1, PROT_READ | PROT_WRITE,
+              MAP_PRIVATE | MAP_ANONYMOUS, fd, uoffset, p);
 #else
        printf("%s(%p, %lu, PROT_READ|PROT_WRITE, "
               "MAP_PRIVATE|MAP_ANONYMOUS, %d, %#jx) = %p\n",
index 07d572cf8071eabb49fd0c30703f8e193bad0ffc..8da50f6b61f00ec70a7f77614b9fcc21b595a18a 100644 (file)
@@ -80,14 +80,13 @@ main(void)
 
        rc = syscall(__NR_mmap, args);
 # if XLAT_RAW
-       printf("mmap(%#lx, %lu, %#x, %#x|%#x, %d, %#lx) = %ld %s (%m)\n",
-              args1_c[0], args1_c[1], PROT_READ|PROT_EXEC, MAP_FILE, MAP_FIXED,
+       printf("mmap(%#lx, %lu, %#x, %#x, %d, %#lx) = %ld %s (%m)\n",
+              args1_c[0], args1_c[1], PROT_READ|PROT_EXEC, MAP_FILE | MAP_FIXED,
               (int) args1_c[4], args1_c[5], rc, errno2name());
 # elif XLAT_VERBOSE
        printf("mmap(%#lx, %lu, %#x /* PROT_READ|PROT_EXEC */"
-              ", %#x /* MAP_FILE */|%#x /* MAP_FIXED */"
-              ", %d, %#lx) = %ld %s (%m)\n",
-              args1_c[0], args1_c[1], PROT_READ|PROT_EXEC, MAP_FILE, MAP_FIXED,
+              ", %#x /* MAP_FILE|MAP_FIXED */, %d, %#lx) = %ld %s (%m)\n",
+              args1_c[0], args1_c[1], PROT_READ|PROT_EXEC, MAP_FILE | MAP_FIXED,
               (int) args1_c[4], args1_c[5], rc, errno2name());
 # else
        printf("mmap(%#lx, %lu, PROT_READ|PROT_EXEC, MAP_FILE|MAP_FIXED"
@@ -100,14 +99,13 @@ main(void)
        rc = syscall(__NR_mmap, args);
 # ifndef PATH_TRACING
 #  if XLAT_RAW
-       printf("mmap(NULL, %lu, %#x, %#x|%#x, %d, %#lx) = %#lx\n",
-              args2_c[1], PROT_READ|PROT_WRITE, MAP_PRIVATE, MAP_ANONYMOUS,
+       printf("mmap(NULL, %lu, %#x, %#x, %d, %#lx) = %#lx\n",
+              args2_c[1], PROT_READ|PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS,
               (int) args2_c[4], args2_c[5], rc);
 #  elif XLAT_VERBOSE
        printf("mmap(NULL, %lu, %#x /* PROT_READ|PROT_WRITE */"
-              ", %#x /* MAP_PRIVATE */|%#x /* MAP_ANONYMOUS */"
-              ", %d, %#lx) = %#lx\n",
-              args2_c[1], PROT_READ|PROT_WRITE, MAP_PRIVATE, MAP_ANONYMOUS,
+              ", %#x /* MAP_PRIVATE|MAP_ANONYMOUS */, %d, %#lx) = %#lx\n",
+              args2_c[1], PROT_READ|PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS,
               (int) args2_c[4], args2_c[5], rc);
 #  else
        printf("mmap(NULL, %lu, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS"