[PATCH v1] changing mmap flags and memfd_create flags to print abbreviated values under -Xraw

Dmitry V. Levin ldv at altlinux.org
Sun Nov 25 21:40:36 UTC 2018


Hi,

On Sun, Nov 25, 2018 at 07:35:10AM -0800, shankarapailoor wrote:
> >From 214f62db7086664f13a03f03f4b632ad2aaf5dec Mon Sep 17 00:00:00 2001
> From: Shankara Pailoor <shankarapailoor at gmail.com>
> Date: Sat, 24 Nov 2018 15:46:38 -0800
> Subject: [PATCH v1] changing mmap flags and memfd_create flags to print
>  abbreviated values under -Xraw

Thank you for submitting this patch.  Unfortunately, on the way to this
mailing list something has converted all tabs to spaces, so I was not able
to apply it.  Anyway, see my comments below.

> ---
>  mem.c          | 8 ++++++++
>  memfd_create.c | 6 ++++++
>  2 files changed, 14 insertions(+)
> 
> diff --git a/mem.c b/mem.c
> index 3e37da19..2665b453 100644
> --- a/mem.c
> +++ b/mem.c
> @@ -76,12 +76,20 @@ SYS_FUNC(brk)
>  static void
>  print_mmap_flags(kernel_ulong_t flags)
>  {
> +    if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW) {
> +        tprintf("%#llx", flags);
> +        return;
> +    }

I think we want to print the raw value in case of XLAT_STYLE_VERBOSE
as well as XLAT_STYLE_RAW, but, unlike XLAT_STYLE_RAW, in case of
XLAT_STYLE_VERBOSE we also want to print the symbolic representation.

See, for example, commit
https://github.com/strace/strace/commit/92b04d4a22a632fd120eae81eb7ebc597e2a816a

> +
>      printxval64(mmap_flags, flags & MAP_TYPE, "MAP_???");
>      flags &= ~MAP_TYPE;
> 
>      const unsigned int mask = MAP_HUGE_MASK << MAP_HUGE_SHIFT;
>      const unsigned int hugetlb_value = flags & mask;
> 
> +    if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW)
> +        return;
> +

This hunk doesn't look relevant here.

>      flags &= ~mask;
>      if (flags) {
>          tprints("|");
> diff --git a/memfd_create.c b/memfd_create.c
> index 1f6a6d6d..375e2179 100644
> --- a/memfd_create.c
> +++ b/memfd_create.c
> @@ -50,6 +50,12 @@ SYS_FUNC(memfd_create)
>      unsigned int flags = tcp->u_arg[1];
>      const unsigned int mask = MFD_HUGE_MASK << MFD_HUGE_SHIFT;
>      const unsigned int hugetlb_value = flags & mask;
> +
> +    if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW) {
> +        tprintf("%#llx", flags);
> +        return RVAL_DECODED | RVAL_FD;
> +    }

The comment about print_mmap_flags applies here as well.

> +
>      flags &= ~mask;
> 
>      if (flags || !hugetlb_value)
> -- 
> 2.17.1
> 
> I wasn't sure if this patch was received through git send-email as I didn't
> notice it in the archive. Apologies if I sent it twice.

No, the patch that was sent using git-send-email hasn't reached
the mailing list.


-- 
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20181126/248fbadf/attachment.bin>


More information about the Strace-devel mailing list