[dpdk-dev] [PATCH] examples/distributor: fix missing "; " in debug macro
Stephen Hemminger
stephen at networkplumber.org
Wed Jun 10 02:33:58 CEST 2015
On Mon, 8 Jun 2015 11:58:10 +0100
Bruce Richardson <bruce.richardson at intel.com> wrote:
> On Fri, Jun 05, 2015 at 10:45:04PM +0200, Thomas Monjalon wrote:
> > 2015-06-05 17:01, Bruce Richardson:
> > > The macro to turn on additional debug output when the app was compiled
> > > with "-DDEBUG" was missing a ";".
> >
> > It shows that such dead code is almost never tested.
> > It would be saner if this command would return no result:
> > git grep 'ifdef.*DEBUG' examples
> > examples/distributor/main.c:#ifdef DEBUG
> > examples/l3fwd-acl/main.c:#ifdef L3FWDACL_DEBUG
> > examples/l3fwd-acl/main.c:#ifdef L3FWDACL_DEBUG
> > examples/l3fwd-acl/main.c:#ifdef L3FWDACL_DEBUG
> > examples/l3fwd-acl/main.c:#ifdef L3FWDACL_DEBUG
> > examples/packet_ordering/main.c:#ifdef DEBUG
> > examples/vhost/main.c:#ifdef DEBUG
> > examples/vhost/main.h:#ifdef DEBUG
> > examples/vhost_xen/main.c:#ifdef DEBUG
> > examples/vhost_xen/main.h:#ifdef DEBUG
> >
> > There is no good reason to not use CONFIG_RTE_LOG_LEVEL to trigger debug build.
> >
> I agree and disagree.
>
> I agree it would be good if we had a standard way of setting up
> a DEBUG build that would make it easier to test and pick up on this sort of things.
>
> I disagree that the compile time log level is the way to do this. The log level
> at compile time specifies the default log level only, the actual log level is
> controllable at runtime. Having the default log level also affect what kind of
> build is done, e.g. with -O0 rather than -O3, introduces an unnecessary dependency.
> Setting the default log level to 5 and changing it to 9 at runtime should be
> the same as setting the default to 9.
>
> /Bruce
One good way is to use something like:
#ifdef DEBUG
#define LOG_DEBUG(log_type, fmt, args...) do { \
- RTE_LOG(DEBUG, log_type, fmt, ##args) \
+ RTE_LOG(DEBUG, log_type, fmt, ##args); \
} while (0)
#else
#define LOG_LEVEL RTE_LOG_INFO
#define LOG_DEBUG(log_type, fmt, args...) if (0) { \
RTE_LOG(DEBUG, log_type, fmt, ##args); \
} else
#endif
More information about the dev
mailing list