From: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
To: "Andreas Färber" <afaerber@suse.de>
Cc: Stefan Hajnoczi <stefanha@gmail.com>,
Igor Mitsyanko <i.mitsyanko@samsung.com>,
"qemu-devel@nongnu.org Developers" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [RFC] Configure option to turn on all debug printerfy
Date: Wed, 31 Oct 2012 14:13:24 +1000 [thread overview]
Message-ID: <CAEgOgz47W7fVJVbfO1xHkYwhbA8DnanDiFs7EvmMR064Vv6MDA@mail.gmail.com> (raw)
In-Reply-To: <50909962.2050009@suse.de>
On Wed, Oct 31, 2012 at 1:22 PM, Andreas Färber <afaerber@suse.de> wrote:
> Am 31.10.2012 04:10, schrieb Peter Crosthwaite:
>> So in a couple of cases now I have done work on mature device models
>> that include #ifdef'd debug printfery that is broken, and have
>> submitted (trivial) patches to fix. Whats happening is tree wide or
>> automated changes (changing types of variables etc) is causing the
>> debug printfery to break, usually werror issues on %x in printfs due
>> to types. Issue is, it never gets detected until someone tries to use
>> the debug mode: ./configure --extra-cflags="-DFOO_DEBUG". Can we have
>> some sort of alternate symbol "ALL_DEBUG" or something, such that
>> every debug printf is compiled? Then when developers make tree wide
>> changes they can at least compile test for breakages in debug printfs
>> using ./configure --extra-cflags="-DALL_DEBUG"? It would be fairly
>> trivial to implement.
>
> The original idea I thought was to replace all the DPRINTFs by tracing...
>
Thats a much longer term goal isn't it? Also wont tracing have the
same problem, given that trace functionality is compiled on a per
module basis? Would need an ALL_TRACE.
> An alternative might be to change the definition from empty DPRINTF(...)
> to DPRINTF(...) if (0) { ... }.
Should work. Proof of concept diff below (untested).
Then no ALL_DEBUG symbol would be
> needed. I don't think anyone would like to get flooded with ALL_DEBUG!
>
So the idea is no one actually needs to run a QEMU built with
ALL_DEBUG. Just maintainers can compile test it for werror breakage.
Regards,
Peter
> Regards,
> Andreas
>
> --
> SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
> GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
>
--- a/hw/pflash_cfi01.c
+++ b/hw/pflash_cfi01.c
@@ -50,13 +50,16 @@ do { \
} while(0)
/* #define PFLASH_DEBUG */
-#ifdef PFLASH_DEBUG
-#define DPRINTF(fmt, ...) \
+#define DO_DPRINTF(fmt, ...) \
do { \
printf("PFLASH: " fmt , ## __VA_ARGS__); \
} while (0)
+#ifdef PFLASH_DEBUG
+#define DPRINTF(fmt, ...) DO_PRINTF(fmt, ## __VA_ARGS__)
#else
-#define DPRINTF(fmt, ...) do { } while (0)
+#define DPRINTF(fmt, ...) if(0) { \
+ DO_PRINTF(fmt, ## __VA_ARGS__) \
+}
#endif
next prev parent reply other threads:[~2012-10-31 4:13 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-31 3:10 [Qemu-devel] [RFC] Configure option to turn on all debug printerfy Peter Crosthwaite
2012-10-31 3:22 ` Andreas Färber
2012-10-31 4:13 ` Peter Crosthwaite [this message]
2012-10-31 9:29 ` Igor Mitsyanko
2012-10-31 9:40 ` Igor Mitsyanko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAEgOgz47W7fVJVbfO1xHkYwhbA8DnanDiFs7EvmMR064Vv6MDA@mail.gmail.com \
--to=peter.crosthwaite@xilinx.com \
--cc=afaerber@suse.de \
--cc=i.mitsyanko@samsung.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).