From: "Ian S. Nelson" <nelcomp@attglobal.net>
To: Vladimir Kondratiev <vladimir.kondratiev@intel.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: __FUNCTION__
Date: Tue, 08 Jan 2002 14:59:46 -0700 [thread overview]
Message-ID: <3C3B6BD2.9070201@attglobal.net> (raw)
In-Reply-To: <3C3B664B.3060103@intel.com>
Vladimir Kondratiev wrote:
> Hello,
> Modern C standard (C99) defines __FUNCTION__ as if immediately after
> function open brace string with function name is declared. Thus, it's
> invalid to use string concatenations like __FILE__ ":" __FUNCTION__.
>
> Gcc 3.03 gives warning for such use of __FUNCTION__. Before this
> warnings become error, it's worth to fix this in the kernel source.
>
> I found tons of improper __FUNCTION__ usage in USB drivers. I am not
> to say, USB is the only place, I just started with it. In USB, typical
> use is with dbg() and alike macros. dbg() defined in usb.h as follows:
>
> #define dbg(format, arg...) printk(KERN_DEBUG __FILE__ ": " format
> "\n" , ## arg)
>
> In source it is usually used like
>
> dbg(__FUNCTION__ " endpoint %d\n", usb_pipeendpoint(this_urb->pipe));
>
> I propose modification for dbg() and friends like
>
> #define dbg(format, arg...) printk(KERN_DEBUG __FILE__ ":%s - " format
> "\n", __FUNCTION__, ## arg)
>
> This will enable the same usage, but will incorporate __FUNCTION__ in
> the common message prefix. This centralization will force function
> name in all messages, and make it easy to fix code. Code will be
> shorter and cleaner. It may be worth to (#ifdef MODULE) add module
> name to message prefix.
>
> Any comments?
I suspect this might be about as religious an issue as there is but has
anyone thought about coming up with some "standard" debugging macros,
perhaps something that can be configured at compile time from the
configuration for everyone to use everywhere? I've got my own debug
macros, essentially a printk with the file, function and line added
wrapped in #ifdef DEBUG. I've seen several other schemes in other parts
of the kernel and now some of them aren't correct.
I guess what I would envision is some kind of debug menu item in the
configuration tool that let's you select if you want messages, and/or
filenames, and/or line numbers, and/or function names, or nothing at
all. They could still be controlled at the module level by defining or
not defining some constant. It just seems kind of pointless to have
10-20 different macros or methods that all do the same thing for
different parts of the kernel.
Ian
--
Ian S. Nelson <nelcomp@attglobal.net> 303-666-0315
Nelson Computing of Boulder Colorado
Networking/Contracting/Custom Software/Linux Fast and Personal service
next prev parent reply other threads:[~2002-01-08 22:00 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-01-08 21:36 __FUNCTION__ Vladimir Kondratiev
2002-01-08 21:59 ` Ian S. Nelson [this message]
2002-01-08 22:17 ` __FUNCTION__ Greg KH
2002-01-08 23:09 ` __FUNCTION__ Vladimir Kondratiev
2002-01-08 22:01 ` __FUNCTION__ Greg KH
2002-01-08 22:56 ` __FUNCTION__ jtv
2002-01-08 23:11 ` __FUNCTION__ Greg KH
2002-01-08 23:39 ` __FUNCTION__ David Weinehall
2002-01-08 23:51 ` __FUNCTION__ Andrew Morton
2002-01-09 0:04 ` __FUNCTION__ David Weinehall
2002-01-09 0:14 ` __FUNCTION__ Andrew Morton
2002-01-09 0:23 ` __FUNCTION__ Anton Altaparmakov
2002-01-08 23:42 ` __FUNCTION__ jtv
2002-01-09 2:12 ` __FUNCTION__ Richard Henderson
2002-01-09 7:23 ` __FUNCTION__ Greg KH
2002-01-09 7:32 ` __FUNCTION__ Neil Booth
2002-01-09 22:35 ` __FUNCTION__ Richard Henderson
2002-01-09 9:05 ` __FUNCTION__ Martin Dalecki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3C3B6BD2.9070201@attglobal.net \
--to=nelcomp@attglobal.net \
--cc=linux-kernel@vger.kernel.org \
--cc=vladimir.kondratiev@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox