From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43703) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZVIKA-0007D2-Jh for qemu-devel@nongnu.org; Fri, 28 Aug 2015 08:00:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZVIK7-00049G-Cx for qemu-devel@nongnu.org; Fri, 28 Aug 2015 08:00:02 -0400 Received: from mx1.redhat.com ([209.132.183.28]:35938) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZVIK7-00049C-7d for qemu-devel@nongnu.org; Fri, 28 Aug 2015 07:59:59 -0400 Date: Fri, 28 Aug 2015 12:59:55 +0100 From: Stefan Hajnoczi Message-ID: <20150828115955.GN4917@stefanha-thinkpad.redhat.com> References: <1439563931-12352-1-git-send-email-guangrong.xiao@linux.intel.com> <1439563931-12352-14-git-send-email-guangrong.xiao@linux.intel.com> <20150825161628.GF8344@stefanha-thinkpad.redhat.com> <55DD97F9.5050003@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <55DD97F9.5050003@linux.intel.com> Subject: Re: [Qemu-devel] [PATCH v2 13/18] nvdimm: build namespace config data List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Xiao Guangrong Cc: ehabkost@redhat.com, kvm@vger.kernel.org, mst@redhat.com, gleb@kernel.org, Stefan Hajnoczi , mtosatti@redhat.com, qemu-devel@nongnu.org, pbonzini@redhat.com, imammedo@redhat.com, rth@twiddle.net On Wed, Aug 26, 2015 at 06:42:01PM +0800, Xiao Guangrong wrote: > > > On 08/26/2015 12:16 AM, Stefan Hajnoczi wrote: > >On Fri, Aug 14, 2015 at 10:52:06PM +0800, Xiao Guangrong wrote: > >>+#ifdef NVDIMM_DEBUG > >>+#define nvdebug(fmt, ...) fprintf(stderr, "nvdimm: " fmt, ## __VA_ARGS__) > >>+#else > >>+#define nvdebug(...) > >>+#endif > > > >The following allows the compiler to check format strings and syntax > >check the argument expressions: > > > >#define NVDIMM_DEBUG 0 /* set to 1 for debug output */ > >#define nvdebug(fmt, ...) \ > > if (NVDIMM_DEBUG) { \ > > fprintf(stderr, "nvdimm: " fmt, ## __VA_ARGS__); \ > > } > > > >This approach avoids bitrot (e.g. debug format string arguments have > >become outdated). > > > > Really good tips, thanks for your sharing. I forgot the do { ... } while (0) in the macro to make nvdebug("hello world"); work like a normal C statement.