Hello Martin and Dennis,
On Wed, Apr 16, 2014 at 5:27 PM, Martin Kepplinger <martink@xxxxxxxxx> wrote:
Am 16.04.2014 13:43 schrieb Denis Pithon:
> Martin,Thanks,
>
> 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
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@xxxxxxxxx>
> wrote:
>
>> Am 16.04.2014 11:58 schrieb Arun KS:
>>
>>> Hi Martin,
>>>
>>> On Wed, Apr 16, 2014 at 2:46 PM, Martin Kepplinger
>>> <martink@xxxxxxxxx>
>>> wrote:
>>>> Am 2014-04-16 11:00, schrieb Arun KS:
>>>>> Hi Martin,
>>> >>
>>>>> On Wed, Apr 16, 2014 at 2:13 PM, Martin Kepplinger
>>>>> <martink@xxxxxxxxx> 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@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@xxxxxxxxxxxxxxxxx
>>>>>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies [1]
>>>>>> [1]
>>
>>> >>
>>>>> _______________________________________________
>>>>> Kernelnewbies mailing list
>>>>> Kernelnewbies@xxxxxxxxxxxxxxxxx
>>>>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies [1]
>>>>> [1]
>>
>>> >>
>>>>
>>>>
>>>> _______________________________________________
>>>> Kernelnewbies mailing list
>>>> Kernelnewbies@xxxxxxxxxxxxxxxxx
>>>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies [1]
>>>> [1]
>>>
>>> Links:
>>> ------
>>> [1] http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>>> [1]
>>
>>>
>>> _______________________________________________
>>> Kernelnewbies mailing list
>>> Kernelnewbies@xxxxxxxxxxxxxxxxx
>>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies [1]
>>
>> _______________________________________________
>> Kernelnewbies mailing list
>> Kernelnewbies@xxxxxxxxxxxxxxxxx
>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies [1]
>
>
>
> Links:
> ------
> [1] http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies@xxxxxxxxxxxxxxxxx
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies