From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:40377) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TTPgE-0001EH-T1 for qemu-devel@nongnu.org; Wed, 31 Oct 2012 00:13:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TTPgD-0007Dg-T6 for qemu-devel@nongnu.org; Wed, 31 Oct 2012 00:13:26 -0400 Received: from mail-vb0-f45.google.com ([209.85.212.45]:45929) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TTPgD-0007DZ-Pp for qemu-devel@nongnu.org; Wed, 31 Oct 2012 00:13:25 -0400 Received: by mail-vb0-f45.google.com with SMTP id p1so1032479vbi.4 for ; Tue, 30 Oct 2012 21:13:24 -0700 (PDT) MIME-Version: 1.0 Sender: peter.crosthwaite@petalogix.com In-Reply-To: <50909962.2050009@suse.de> References: <50909962.2050009@suse.de> Date: Wed, 31 Oct 2012 14:13:24 +1000 Message-ID: From: Peter Crosthwaite Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [RFC] Configure option to turn on all debug printerfy List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?ISO-8859-1?Q?Andreas_F=E4rber?= Cc: Stefan Hajnoczi , Igor Mitsyanko , "qemu-devel@nongnu.org Developers" On Wed, Oct 31, 2012 at 1:22 PM, Andreas F=E4rber 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=3D"-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=3D"-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=FCrnberg, Germany > GF: Jeff Hawn, Jennifer Guild, Felix Imend=F6rffer; HRB 16746 AG N=FCrnbe= rg > --- 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