Re: [Qemu-devel] [RFC][PATCH v3 03/21] virtproxy: add debug functions for virtproxy core
On Thu, Nov 18, 2010 at 5:17 PM, Michael Roth wrote: > On 11/18/2010 05:43 AM, Stefan Hajnoczi wrote: >> >> On Thu, Nov 18, 2010 at 11:09 AM, Jes Sorensen >> wrote: >>> >>> On 11/16/10 02:15, Michael Roth wrote: Signed-off-by: Michael Roth --- virtproxy.c | 17 + 1 files changed, 17 insertions(+), 0 deletions(-) diff --git a/virtproxy.c b/virtproxy.c index 8f18d83..3686c77 100644 --- a/virtproxy.c +++ b/virtproxy.c @@ -13,6 +13,23 @@ #include "virtproxy.h" +#define DEBUG_VP + +#ifdef DEBUG_VP +#define TRACE(msg, ...) do { \ + fprintf(stderr, "%s:%s():L%d: " msg "\n", \ + __FILE__, __FUNCTION__, __LINE__, ## __VA_ARGS__); \ +} while(0) +#else +#define TRACE(msg, ...) \ + do { } while (0) +#endif + +#define LOG(msg, ...) do { \ + fprintf(stderr, "%s:%s(): " msg "\n", \ + __FILE__, __FUNCTION__, ## __VA_ARGS__); \ +} while(0) + >>> >>> I wonder if it wouldn't make sense to do this in a more generic way and >>> stick it in a header file. This type of debug code seems to show up >>> repeatedly all over the place. >> >> I wanted to suggest actually using QEMU tracing but given that this >> code compiles stand-alone, it may be more trouble to integrate than >> it's worth. >> >> For qemu and qemu-tools code we should be using tracing because you >> can build it into production without high overhead. How often do >> these #defines get used, not often is my guess because no one wants to >> tweak the source and rebuild, especially not in production. >> > > I'd planned on replacing the TRACE()'s with trace calls eventually. Maybe I > missed it in the documentation, but do we have a way to enable them for > qemu-tools or does we need to provide our own hooks and do it > programmatically? qemu-tools builds with QEMU tracing. I wasn't sure whether you're building in the qemu-tools style or whether qemu-vp is a completely separate program. So if qemu-vp is built with all the common qemu-tools make infrastructure, then you should have tracing in there. Stefan
Re: [Qemu-devel] [RFC][PATCH v3 03/21] virtproxy: add debug functions for virtproxy core
On 11/18/2010 05:43 AM, Stefan Hajnoczi wrote: On Thu, Nov 18, 2010 at 11:09 AM, Jes Sorensen wrote: On 11/16/10 02:15, Michael Roth wrote: Signed-off-by: Michael Roth --- virtproxy.c | 17 + 1 files changed, 17 insertions(+), 0 deletions(-) diff --git a/virtproxy.c b/virtproxy.c index 8f18d83..3686c77 100644 --- a/virtproxy.c +++ b/virtproxy.c @@ -13,6 +13,23 @@ #include "virtproxy.h" +#define DEBUG_VP + +#ifdef DEBUG_VP +#define TRACE(msg, ...) do { \ +fprintf(stderr, "%s:%s():L%d: " msg "\n", \ +__FILE__, __FUNCTION__, __LINE__, ## __VA_ARGS__); \ +} while(0) +#else +#define TRACE(msg, ...) \ +do { } while (0) +#endif + +#define LOG(msg, ...) do { \ +fprintf(stderr, "%s:%s(): " msg "\n", \ +__FILE__, __FUNCTION__, ## __VA_ARGS__); \ +} while(0) + I wonder if it wouldn't make sense to do this in a more generic way and stick it in a header file. This type of debug code seems to show up repeatedly all over the place. I wanted to suggest actually using QEMU tracing but given that this code compiles stand-alone, it may be more trouble to integrate than it's worth. For qemu and qemu-tools code we should be using tracing because you can build it into production without high overhead. How often do these #defines get used, not often is my guess because no one wants to tweak the source and rebuild, especially not in production. I'd planned on replacing the TRACE()'s with trace calls eventually. Maybe I missed it in the documentation, but do we have a way to enable them for qemu-tools or does we need to provide our own hooks and do it programmatically? Stefan
Re: [Qemu-devel] [RFC][PATCH v3 03/21] virtproxy: add debug functions for virtproxy core
On Thu, Nov 18, 2010 at 11:09 AM, Jes Sorensen wrote: > On 11/16/10 02:15, Michael Roth wrote: >> Signed-off-by: Michael Roth >> --- >> virtproxy.c | 17 + >> 1 files changed, 17 insertions(+), 0 deletions(-) >> >> diff --git a/virtproxy.c b/virtproxy.c >> index 8f18d83..3686c77 100644 >> --- a/virtproxy.c >> +++ b/virtproxy.c >> @@ -13,6 +13,23 @@ >> >> #include "virtproxy.h" >> >> +#define DEBUG_VP >> + >> +#ifdef DEBUG_VP >> +#define TRACE(msg, ...) do { \ >> + fprintf(stderr, "%s:%s():L%d: " msg "\n", \ >> + __FILE__, __FUNCTION__, __LINE__, ## __VA_ARGS__); \ >> +} while(0) >> +#else >> +#define TRACE(msg, ...) \ >> + do { } while (0) >> +#endif >> + >> +#define LOG(msg, ...) do { \ >> + fprintf(stderr, "%s:%s(): " msg "\n", \ >> + __FILE__, __FUNCTION__, ## __VA_ARGS__); \ >> +} while(0) >> + > > I wonder if it wouldn't make sense to do this in a more generic way and > stick it in a header file. This type of debug code seems to show up > repeatedly all over the place. I wanted to suggest actually using QEMU tracing but given that this code compiles stand-alone, it may be more trouble to integrate than it's worth. For qemu and qemu-tools code we should be using tracing because you can build it into production without high overhead. How often do these #defines get used, not often is my guess because no one wants to tweak the source and rebuild, especially not in production. Stefan
Re: [Qemu-devel] [RFC][PATCH v3 03/21] virtproxy: add debug functions for virtproxy core
On 11/16/10 02:15, Michael Roth wrote: > Signed-off-by: Michael Roth > --- > virtproxy.c | 17 + > 1 files changed, 17 insertions(+), 0 deletions(-) > > diff --git a/virtproxy.c b/virtproxy.c > index 8f18d83..3686c77 100644 > --- a/virtproxy.c > +++ b/virtproxy.c > @@ -13,6 +13,23 @@ > > #include "virtproxy.h" > > +#define DEBUG_VP > + > +#ifdef DEBUG_VP > +#define TRACE(msg, ...) do { \ > +fprintf(stderr, "%s:%s():L%d: " msg "\n", \ > +__FILE__, __FUNCTION__, __LINE__, ## __VA_ARGS__); \ > +} while(0) > +#else > +#define TRACE(msg, ...) \ > +do { } while (0) > +#endif > + > +#define LOG(msg, ...) do { \ > +fprintf(stderr, "%s:%s(): " msg "\n", \ > +__FILE__, __FUNCTION__, ## __VA_ARGS__); \ > +} while(0) > + I wonder if it wouldn't make sense to do this in a more generic way and stick it in a header file. This type of debug code seems to show up repeatedly all over the place. Cheers, Jes
[Qemu-devel] [RFC][PATCH v3 03/21] virtproxy: add debug functions for virtproxy core
Signed-off-by: Michael Roth --- virtproxy.c | 17 + 1 files changed, 17 insertions(+), 0 deletions(-) diff --git a/virtproxy.c b/virtproxy.c index 8f18d83..3686c77 100644 --- a/virtproxy.c +++ b/virtproxy.c @@ -13,6 +13,23 @@ #include "virtproxy.h" +#define DEBUG_VP + +#ifdef DEBUG_VP +#define TRACE(msg, ...) do { \ +fprintf(stderr, "%s:%s():L%d: " msg "\n", \ +__FILE__, __FUNCTION__, __LINE__, ## __VA_ARGS__); \ +} while(0) +#else +#define TRACE(msg, ...) \ +do { } while (0) +#endif + +#define LOG(msg, ...) do { \ +fprintf(stderr, "%s:%s(): " msg "\n", \ +__FILE__, __FUNCTION__, ## __VA_ARGS__); \ +} while(0) + #define VP_SERVICE_ID_LEN 32/* max length of service id string */ #define VP_PKT_DATA_LEN 1024/* max proxied bytes per VPPacket */ #define VP_CONN_DATA_LEN 1024 /* max bytes conns can send at a time */ -- 1.7.0.4