On Wed, Jul 11, 2007 at 05:24:08PM +0100, Richard W.M. Jones wrote: > Daniel Veillard wrote: > >On Wed, Jul 11, 2007 at 05:06:31PM +0100, Daniel P. Berrange wrote: > >>On Wed, Jul 11, 2007 at 12:02:26PM -0400, Daniel Veillard wrote: > >>>On Wed, Jul 11, 2007 at 04:36:23PM +0100, Richard W.M. Jones wrote: > >>>>This can prove useful if we want to track down problems like the > >>>>double-call of domainSuspend. > >>>> > >>>>Also attached below is the output of virt-manager when this tracing is > >>>>enabled. > >>>> > >>>>Note that if --enable-debug is not set, then no extra code is added to > >>>>libvirt. > >>> I would like this, I have just one thing which worries me, it's the > >>>vararg macros, I'm not sure how widely it's supported outside of gcc .. > >>If it doesn't work on non-GCC, then those people can simply not add > >>--enable-debug to their configure flags. > > > > Disagree > > > >+#define DEBUG0 > >+#define DEBUG(fs,...) > >+#endif /* !ENABLE_DEBUG */ > > > >just won't work for them, not all statements are within > >#ifdef ENABLE_DEBUG > >#endif > > > >it won't compile even if ENABLE_DEBUG is not defined. > > Am I missing something here? > > For me it does compile with and without --enable-debug=yes, but then of > course I'm only using gcc. > > My understanding is that __VA_ARGS__ is the ISO C way of doing varargs > in macro definitions. gcc has its own variation (#define F(args...)) > which I deliberately avoided for portability reasons. > > The only odd thing we're doing in the --enable-debug case is using > ##__VA_ARGS__, where the "##" swallows the preceeding comma. I have no > idea if this is ISO C or not. It is mentioned in the CPP info page, but > it's not clear if it is standard. In any case because we have two > macros (DEBUG0 and DEBUG) it is trivial to rewrite the patch to avoid this. Yeah, I understand I'm being a bit picky, but it's usually easier to get fixed at check-in than when someone doing a port hits it (if this ever happens !) Daniel -- Red Hat Virtualization group http://redhat.com/virtualization/ Daniel Veillard | virtualization library http://libvirt.org/ veillard@xxxxxxxxxx | libxml GNOME XML XSLT toolkit http://xmlsoft.org/ http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/ -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list