-
Notifications
You must be signed in to change notification settings - Fork 4
/
debugging.html
50 lines (42 loc) · 1.51 KB
/
debugging.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<html>
<font face="helvetica">
<title>Debugging</title>
<body>
<p align=center><font size=+5>Debugging</font>
<hr>
<a href="contents.html">Contents</a>
<font size=+3>
<ul>
<li>Use printk, dev_warn(), or dev_dbg() or the like.
<li>Use a null modem + serial port to capture console output: add
<pre>console=ttyS0,115200</pre>
line settings: 8N1, no hardware flow control
<li><a href="http://kerneltrap.org/node/3648">Decoding a stack trace (oops or panic):</a>
<ul>
<li>
Check EIP
<li>beware of inlining
<li>(In the old days, had to use the ksymoops program to decode stack traces, nowadays, this is built into the kernel.)
</ul>
<li>Add special debug /proc, /sys or ioctl entry points to allow information gathering
<li>magic sysrq key:
<br>enable by:
<pre>echo 1 > /proc/sys/kernel/sysrq</pre>
<p>alt-sysrq-KEY performs a variety of actions, see
<p>Documenatation/sysrq.txt
<p>Some convenient ones:
<ul>
<li>alt-sysrq-'s' - Will attempt to sync all mounted filesystems.
(useful before you try something suspiciously dangerous which may
crash the system, such as insmod'ing or rmmod'ing your new,
untested driver code (or just run the 'sync' command)
<li>'u' - Will attempt to remount all mounted filesystems read-only.
<li>'t' - Will dump a list of current tasks and their information to your
console.
<li>re'B'oot is good when you're unable to shut down. But you should also 'S'ync and 'U'mount first.
</ul>
<li>kgdb, gdb, the "crash" program - beyond the scope of this class.
</ul>
</font>
</body>
</html>