loglevel 7 (debug) and pr_debug()

Arun KS getarunks at gmail.com
Wed Apr 16 08:29:43 EDT 2014


Hello Martin and Dennis,


On Wed, Apr 16, 2014 at 5:27 PM, Martin Kepplinger <martink at posteo.de>wrote:

> Am 16.04.2014 13:43 schrieb Denis Pithon:
> > Martin,
> >
> > I'm not sure did you enable DDEBUG when compiling your module ?
> > pr_debug() macro is discarded if you omit DEBUG in compile time
> >
> > A sample Makefile which enable pr_debug() :
> >
> > obj-m += my_modue.o
> >
> > KDIR ?= /lib/modules/`uname -r`/build
> > CFLAGS_my_module.o := -DDEBUG
> >
> > all:
> >  make -C $(KDIR) M=$(PWD) modules
> >
> > clean:
> >  make -C $(KDIR) M=$(PWD) clean
> >
> > Let me know ...
> > regards
>
> Thanks,
>
> I did not, but now added -DDEBUG. The exact line is:
> CFLAGS_my_module.o := -DDEBUG
> when "my_module.o" is my object file. Did I get that right?
>
> That doesn't change anything unfortunately. I can not read pr_debug()
> unless I
> explicitely activate it in /sys/kernel/debug/dynamic_debug/control
> *after* insmod.
>

Adding -DDEBUG will not change anything if CONFIG_DYNAMIC_DEBUG is defined
in your .config

The reason is because CONFIG_DYNAMIC_DEBUG  has priority over DEBUG.

File:include/linux/printk.h
--------------------------stripped-------------------------------
#if defined(CONFIG_DYNAMIC_DEBUG)
/* dynamic_pr_debug() uses pr_fmt() internally so we don't need it here */
#define pr_debug(fmt, ...) \
        dynamic_pr_debug(fmt, ##__VA_ARGS__)
#elif defined(DEBUG)
#define pr_debug(fmt, ...) \
        printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
#else
#define pr_debug(fmt, ...) \
        no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
#endif
--------------------------stripped-------------------------------

So the quick way is to disable CONFIG_DYNAMIC_DEBUG and add -DDEBUG in your
makefile.

Thanks,
Arun



>
> I'd like to just read all pr_debug() messages like pr_info().
>
> thanks for your time!
>
> >
> > On Wed, Apr 16, 2014 at 1:11 PM, Martin Kepplinger <martink at posteo.de>
> > wrote:
> >
> >> Am 16.04.2014 11:58 schrieb Arun KS:
> >>
> >>> Hi Martin,
> >>>
> >>> On Wed, Apr 16, 2014 at 2:46 PM, Martin Kepplinger
> >>> <martink at posteo.de>
> >>> wrote:
> >>>> Am 2014-04-16 11:00, schrieb Arun KS:
> >>>>> Hi Martin,
> >>>  >>
> >>>>> On Wed, Apr 16, 2014 at 2:13 PM, Martin Kepplinger
> >>>>> <martink at posteo.de> wrote:
> >>>>>> I'm on Debian here and I don't really get pr_debug and
> >>>>>> printk(KERN_DEBUG
> >>>  >>> ...). Let's stick to pr_debug.
> >>>>>>
> >>>>>> I have DYNAMIC_DEBUG enabled and
> >>>>>> root at laptop:/proc/sys/kernel# cat /proc/sys/kernel/printk
> >>>>>> 7       7       1       7
> >>>  >> This shows the console log level.
> >>>>> This file controls the traffic to console. But all the log
> >>>>> messages
> >>>>> will be present in logbuf.
> >>>>
> >>>> How do I view debug messages from logbuf?
> >>>  >
> >>>>>
> >>>>>>
> >>>>>> I write a module with pr_debug's. I load the module and I *don't*
> >>>>>> see
> >>>>>> anything in /var/log/messages (or anywhere in /var/log/* ).
> >>>>>> Adding
> >>>>>> #define DEBUG doesn't help.
> >>>  >>>
> >>>>>> /sys/kernel/debug/dynamic_debug/control has the pr_debug entries
> >>>>>> I
> >>>>>> use
> >>>>>> in my loaded module.
> >>>>>>
> >>>>>> In short: How do I see debug log messages? Using pr_info() works
> >>>>>> as
> >>>  >>> expected. What am I missing? Do I need to edit my Makefile?
> >>>>> Did you enable dynamic printing for your file?
> >>>>>
> >>>>> Below command enables dynamic printing for file sdhci.c.
> >>>>> echo 'file sdhci.c +p' > /sys/kernel/debug/dynamic_debug/control
> >>>  >
> >>>> well. I tried that. The thing is, the pr_debug() symbols are in
> >>>> "control" only after "insmod my_module". Then I can echo -n 'file
> >>>> my_mobule.c +p' > control
> >>>> But my pr_debug() messages get printed directly after insmod,
> >>>> basically
> >>>  > in my module_init function. Enabling my file doesn't output
> >>> anything in
> >>>> /var/log/*
> >>> So now you know why your pr_debug is absent in logbuf.
> >>>
> >>> You can make your module as a built in and use bootargs.
> >>>
> >>> eg:
> >>> dyndbg="file your_filename.c +p"
> >>>
> >>> Thanks,
> >>> Arun
> >>>
> >>
> >> So it's *not* possible at all to get pr_debug() messages just like
> >> pr_info() messages?
> >> Of what I've read, I assumed pr_debug() is just loglevel 7.
> >>
> >> thanks for your help!
> >>
> >>>>
> >>>>>
> >>>>>
> >>>>> Thanks,
> >>>>> Arun
> >>>>>>
> >>>>>> thanks!
> >>>>>>                      martin
> >>>  >>>
> >>>>>> --
> >>>>>> Martin Kepplinger
> >>>>>> e-mail        martink AT posteo DOT at
> >>>>>> chat (XMPP)   martink AT jabber DOT at
> >>>>>>
> >>>>>> _______________________________________________
> >>>  >>> Kernelnewbies mailing list
> >>>>>> Kernelnewbies at kernelnewbies.org
> >>>>>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies [1]
> >>>>>> [1]
> >>
> >>>  >>
> >>>>> _______________________________________________
> >>>>> Kernelnewbies mailing list
> >>>>> Kernelnewbies at kernelnewbies.org
> >>>>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies [1]
> >>>>> [1]
> >>
> >>>  >>
> >>>>
> >>>>
> >>>> _______________________________________________
> >>>> Kernelnewbies mailing list
> >>>> Kernelnewbies at kernelnewbies.org
> >>>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies [1]
> >>>> [1]
> >>>
> >>> Links:
> >>> ------
> >>> [1] http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
> >>> [1]
> >>
> >>>
> >>> _______________________________________________
> >>> Kernelnewbies mailing list
> >>> Kernelnewbies at kernelnewbies.org
> >>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies [1]
> >>
> >> _______________________________________________
> >> Kernelnewbies mailing list
> >> Kernelnewbies at kernelnewbies.org
> >> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies [1]
> >
> >
> >
> > Links:
> > ------
> > [1] http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
> >
> > _______________________________________________
> > Kernelnewbies mailing list
> > Kernelnewbies at kernelnewbies.org
> > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20140416/2c7ededd/attachment.html 


More information about the Kernelnewbies mailing list