title: How are dev_*() family functions useful while debugging the Linux kernel?
body: <p>While searching for techniques to debugging a Linux kernel, one of the ways is to use the <strong>dev_*()</strong> family functions.</p>
  
  <p>These functions are defined in the <code>/include/linux/device.h</code> file.</p>
  
  <p>The function list is as below:</p>
  
  <pre><code>`dev_emerge()`&lt;br&gt;
  `dev_alert()`&lt;br&gt;
  `dev_crit()`&lt;br&gt;
  `dev_err()`&lt;br&gt;
  `dev_warning()`&lt;br&gt;
  `dev_notice()`&lt;br&gt;
  `dev_info()`&lt;br&gt;
  </code></pre>
  
  <p>I have already experimented with the <strong>pr_*()</strong>[<code>pr_emerge()</code>, <code>pr_alert()</code>, <code>pr_crit()</code>...] family functions, which are similar to <strong>printk()</strong> in some way.</p>
  
  <p>An experiment is done using simple kernel modules where I'm calling these functions. Furthermore I have also gone through a priority of messages displayed in <code>syslog</code> and <code>dmesg</code> (kernel ring buffer depending console_loglevel-a kernel variable).</p>
  
  <p>But I'm unable to understand the use of <strong>dev_*()</strong> family. I mean, how do I use it in a program to debug kernel functionality?</p>