docs: disable KASLR when debugging kernel
authorZhouyi Zhou <zhouzhouyi@gmail.com>
Fri, 7 Jul 2017 07:11:46 +0000 (15:11 +0800)
committerJonathan Corbet <corbet@lwn.net>
Mon, 17 Jul 2017 20:40:40 +0000 (14:40 -0600)
commit 6807c84652b0 ("x86: Enable KASLR by default") enables KASLR
by default on x86. While KASLR will confuse gdb which resolve kernel
symbol address from symbol table of vmlinux. We should turn off KASLR for
kernel debugging.

Signed-off-by: Zhouyi Zhou <zhouzhouyi@gmail.com>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Documentation/dev-tools/kgdb.rst

index 75273203a35a25bcab3e4b90e4b368941fdc2b2a..d38be58f872af6511a5d9568d586fff09e7c504d 100644 (file)
@@ -348,6 +348,15 @@ default behavior is always set to 0.
     - ``echo 1 > /sys/module/debug_core/parameters/kgdbreboot``
     - Enter the debugger on reboot notify.
 
+Kernel parameter: ``nokaslr``
+-----------------------------
+
+If the architecture that you are using enable KASLR by default,
+you should consider turning it off.  KASLR randomizes the
+virtual address where the kernel image is mapped and confuse
+gdb which resolve kernel symbol address from symbol table
+of vmlinux.
+
 Using kdb
 =========
 
@@ -358,7 +367,7 @@ This is a quick example of how to use kdb.
 
 1. Configure kgdboc at boot using kernel parameters::
 
-       console=ttyS0,115200 kgdboc=ttyS0,115200
+       console=ttyS0,115200 kgdboc=ttyS0,115200 nokaslr
 
    OR