<?xml version="1.0" encoding="ANSI_X3.4-1968" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968" /><title>Kernel parameter: kgdboc</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><link rel="home" href="index.html" title="Using kgdb and the kgdb Internals" /><link rel="up" href="ch03.html" title="Chapter 3. Enable kgdb for debugging" /><link rel="prev" href="ch03.html" title="Chapter 3. Enable kgdb for debugging" /><link rel="next" href="ch03s03.html" title="Kernel parameter: kgdbcon" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Kernel parameter: kgdboc</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Enable kgdb for debugging</th><td width="20%" align="right"> <a accesskey="n" href="ch03s03.html">Next</a></td></tr></table><hr /></div><div class="sect1" title="Kernel parameter: kgdboc"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="kgdboc"></a>Kernel parameter: kgdboc</h2></div></div></div><div class="toc"><dl><dt><span class="sect2"><a href="ch03s02.html#UsingKgdboc">Using kgdboc</a></span></dt></dl></div><p> The kgdboc driver was originally an abbreviation meant to stand for "kgdb over console". Kgdboc is designed to work with a single serial port. It was meant to cover the circumstance where you wanted to use a serial console as your primary console as well as using it to perform kernel debugging. Of course you can also use kgdboc without assigning a console to the same port. </p><div class="sect2" title="Using kgdboc"><div class="titlepage"><div><div><h3 class="title"><a id="UsingKgdboc"></a>Using kgdboc</h3></div></div></div><p> You can configure kgdboc via sysfs or a module or kernel boot line parameter depending on if you build with CONFIG_KGDBOC as a module or built-in. </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>From the module load or build-in</p><p><code class="constant">kgdboc=<tty-device>,[baud]</code></p><p> The example here would be if your console port was typically ttyS0, you would use something like <code class="constant">kgdboc=ttyS0,115200</code> or on the ARM Versatile AB you would likely use <code class="constant">kgdboc=ttyAMA0,115200</code> </p></li><li class="listitem"><p>From sysfs</p><p><code class="constant">echo ttyS0 > /sys/module/kgdboc/parameters/kgdboc</code></p></li></ol></div><p> </p><p> NOTE: Kgdboc does not support interrupting the target via the gdb remote protocol. You must manually send a sysrq-g unless you have a proxy that splits console output to a terminal problem and has a separate port for the debugger to connect to that sends the sysrq-g for you. </p><p>When using kgdboc with no debugger proxy, you can end up connecting the debugger for one of two entry points. If an exception occurs after you have loaded kgdboc a message should print on the console stating it is waiting for the debugger. In case you disconnect your terminal program and then connect the debugger in its place. If you want to interrupt the target system and forcibly enter a debug session you have to issue a Sysrq sequence and then type the letter <code class="constant">g</code>. Then you disconnect the terminal session and connect gdb. Your options if you don't like this are to hack gdb to send the sysrq-g for you as well as on the initial connect, or to use a debugger proxy that allows an unmodified gdb to do the debugging. </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch03.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch03.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch03s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 3. Enable kgdb for debugging </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Kernel parameter: kgdbcon</td></tr></table></div></body></html>