[prev in list] [next in list] [prev in thread] [next in thread] 

List:       strace
Subject:    Re: [PATCH 05/12] quota: Add missing prefixes to struct field names
From:       "Dmitry V. Levin" <ldv () altlinux ! org>
Date:       2016-09-27 8:29:47
Message-ID: 20160927082947.GA5916 () altlinux ! org
[Download RAW message or body]

[Attachment #2 (multipart/signed)]


On Wed, Sep 21, 2016 at 06:11:28AM +0300, Eugene Syromyatnikov wrote:
> * quota.c (decode_cmd_data): Print field names in accordance with their
>   definition.
> ---
>  quota.c |  191 ++++++++++++++++++++++++++++++++-------------------------------
>  1 file changed, 98 insertions(+), 93 deletions(-)
> 
> diff --git a/quota.c b/quota.c
> index 68f8a79..1e1597f 100644
> --- a/quota.c
> +++ b/quota.c
> @@ -237,16 +237,16 @@ decode_cmd_data(struct tcb *tcp, uint32_t id, uint32_t cmd, unsigned long data)
>  
>  		if (umove_or_printaddr(tcp, data, &dq))
>  			break;
> -		tprintf("{bhardlimit=%" PRIu64 ", ", dq.dqb_bhardlimit);
> -		tprintf("bsoftlimit=%" PRIu64 ", ", dq.dqb_bsoftlimit);
> -		tprintf("curspace=%" PRIu64 ", ", dq.dqb_curspace);
> -		tprintf("ihardlimit=%" PRIu64 ", ", dq.dqb_ihardlimit);
> -		tprintf("isoftlimit=%" PRIu64 ", ", dq.dqb_isoftlimit);
> -		tprintf("curinodes=%" PRIu64 ", ", dq.dqb_curinodes);
> +		tprintf("{dqb_bhardlimit=%" PRIu64 ", ", dq.dqb_bhardlimit);
> +		tprintf("dqb_bsoftlimit=%" PRIu64 ", ", dq.dqb_bsoftlimit);
> +		tprintf("dqb_curspace=%" PRIu64 ", ", dq.dqb_curspace);
> +		tprintf("dqb_ihardlimit=%" PRIu64 ", ", dq.dqb_ihardlimit);
> +		tprintf("dqb_isoftlimit=%" PRIu64 ", ", dq.dqb_isoftlimit);
> +		tprintf("dqb_curinodes=%" PRIu64 ", ", dq.dqb_curinodes);
>  		if (!abbrev(tcp)) {
> -			tprintf("btime=%" PRIu64 ", ", dq.dqb_btime);
> -			tprintf("itime=%" PRIu64 ", ", dq.dqb_itime);
> -			tprints("valid=");
> +			tprintf("dqb_btime=%" PRIu64 ", ", dq.dqb_btime);
> +			tprintf("dqb_itime=%" PRIu64 ", ", dq.dqb_itime);
> +			tprints("dqb_valid=");
>  			printflags(if_dqblk_valid,
>  				   dq.dqb_valid, "QIF_???");
>  			tprints("}");
> @@ -267,19 +267,19 @@ decode_cmd_data(struct tcb *tcp, uint32_t id, uint32_t cmd, unsigned long data)
>  
>  		if (umove_or_printaddr(tcp, data, &dq))
>  			break;
> -		tprintf("{bhardlimit=%" PRIu64 ", ", dq.dqb_bhardlimit);
> -		tprintf("bsoftlimit=%" PRIu64 ", ", dq.dqb_bsoftlimit);
> -		tprintf("curspace=%" PRIu64 ", ", dq.dqb_curspace);
> -		tprintf("ihardlimit=%" PRIu64 ", ", dq.dqb_ihardlimit);
> -		tprintf("isoftlimit=%" PRIu64 ", ", dq.dqb_isoftlimit);
> -		tprintf("curinodes=%" PRIu64 ", ", dq.dqb_curinodes);
> +		tprintf("{dqb_bhardlimit=%" PRIu64 ", ", dq.dqb_bhardlimit);
> +		tprintf("dqb_bsoftlimit=%" PRIu64 ", ", dq.dqb_bsoftlimit);
> +		tprintf("dqb_curspace=%" PRIu64 ", ", dq.dqb_curspace);
> +		tprintf("dqb_ihardlimit=%" PRIu64 ", ", dq.dqb_ihardlimit);
> +		tprintf("dqb_isoftlimit=%" PRIu64 ", ", dq.dqb_isoftlimit);
> +		tprintf("dqb_curinodes=%" PRIu64 ", ", dq.dqb_curinodes);
>  		if (!abbrev(tcp)) {
> -			tprintf("btime=%" PRIu64 ", ", dq.dqb_btime);
> -			tprintf("itime=%" PRIu64 ", ", dq.dqb_itime);
> -			tprints("valid=");
> +			tprintf("dqb_btime=%" PRIu64 ", ", dq.dqb_btime);
> +			tprintf("dqb_itime=%" PRIu64 ", ", dq.dqb_itime);
> +			tprints("dqb_valid=");
>  			printflags(if_dqblk_valid,
>  				   dq.dqb_valid, "QIF_???");
> -			tprintf(", id=%u}", dq.dqb_id);
> +			tprintf(", dqb_id=%u}", dq.dqb_id);
>  		} else
>  			tprintf("id=%u, ...}", dq.dqb_id);

This approach is error-prone, as the last line clearly demonstrates.
I've introduced a macro to make it less prone to such errors.


-- 
ldv

[Attachment #5 (application/pgp-signature)]

------------------------------------------------------------------------------


_______________________________________________
Strace-devel mailing list
Strace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/strace-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic