kern/175759: Correct data types for fields of struct qm_trace{} from <sys/queue.h>
Andrey Simonenko
simon at comsys.ntu-kpi.kiev.ua
Mon Feb 4 15:20:01 UTC 2013
The following reply was made to PR kern/175759; it has been noted by GNATS.
From: Andrey Simonenko <simon at comsys.ntu-kpi.kiev.ua>
To: Gleb Smirnoff <glebius at FreeBSD.org>
Cc: FreeBSD-gnats-submit at freebsd.org
Subject: Re: kern/175759: Correct data types for fields of struct qm_trace{}
from <sys/queue.h>
Date: Mon, 4 Feb 2013 17:12:57 +0200
repost: forgot to send to the group.
On Mon, Feb 04, 2013 at 06:14:07PM +0400, Gleb Smirnoff wrote:
> Andrey,
>
> any additional comments for the attached patch. Is it ok from your
> viewpoint?
>
> --
> Totus tuus, Glebius.
> Index: queue.h
> ===================================================================
> --- queue.h (revision 245741)
> +++ queue.h (working copy)
> @@ -105,13 +105,14 @@
> #ifdef QUEUE_MACRO_DEBUG
> /* Store the last 2 places the queue element or head was altered */
> struct qm_trace {
> - char * lastfile;
> - int lastline;
> - char * prevfile;
> - int prevline;
> + const char * lastfile;
> + unsigned long lastline;
> + const char * prevfile;
> + unsigned long prevline;
> };
>
> #define TRACEBUF struct qm_trace trace;
> +#define TRACEBUF_INITIALIZER { __FILE__, __LINE__, NULL, 0 } ,
> #define TRASHIT(x) do {(x) = (void *)-1;} while (0)
> #define QMD_SAVELINK(name, link) void **name = (void *)&(link)
>
> @@ -134,6 +135,7 @@
> #define QMD_TRACE_HEAD(head)
> #define QMD_SAVELINK(name, link)
> #define TRACEBUF
> +#define TRACEBUF_INITIALIZER
> #define TRASHIT(x)
> #endif /* QUEUE_MACRO_DEBUG */
>
> @@ -461,7 +463,7 @@
> }
>
> #define TAILQ_HEAD_INITIALIZER(head) \
> - { NULL, &(head).tqh_first }
> + { NULL, &(head).tqh_first, TRACEBUF_INITIALIZER }
>
> #define TAILQ_ENTRY(type) \
> struct { \
Looks correct.
What do you think about this idea:
http://lists.freebsd.org/pipermail/freebsd-bugs/2013-February/051665.html
it has more generic approach for such kind of debugging.
More information about the freebsd-bugs
mailing list