Re: [PATCH 2/2] docs: disable KASLR when debugging kernel

From: Kieran Bingham
Date: Fri Jul 07 2017 - 04:05:40 EST


Hi Zhouyi

Thankyou for the patch,

On 07/07/17 08:14, Zhouyi Zhou wrote:
> 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.
Yes, this is something I had come across and certainly should be documented.

> Signed-off-by: Zhouyi Zhou <zhouzhouyi@xxxxxxxxx>
> ---
> Documentation/dev-tools/gdb-kernel-debugging.rst | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/dev-tools/gdb-kernel-debugging.rst b/Documentation/dev-tools/gdb-kernel-debugging.rst
> index 5e93c9b..fe2edcc 100644
> --- a/Documentation/dev-tools/gdb-kernel-debugging.rst
> +++ b/Documentation/dev-tools/gdb-kernel-debugging.rst
> @@ -31,12 +31,13 @@ Setup
> CONFIG_DEBUG_INFO_REDUCED off. If your architecture supports
> CONFIG_FRAME_POINTER, keep it enabled.
>
> -- Install that kernel on the guest.
> +- Install that kernel on the guest, turn off KASLR by adding "nokaslr" to
> + the kernel command line .
Is KASLR available on *all* supported architectures?

If not, then perhaps this should be "turn off KASLR if necessary by ..."
But I don't think that's a big deal really.

Reviewed-by: Kieran Bingham <kbingham@xxxxxxxxxx>


> Alternatively, QEMU allows to boot the kernel directly using -kernel,
> -append, -initrd command line switches. This is generally only useful if
> you do not depend on modules. See QEMU documentation for more details on
> - this mode.
> + this mode. In this case, you should build the kernel with
> + CONFIG_RANDOMIZE_BASE disabled.
>
> - Enable the gdb stub of QEMU/KVM, either
>

--
Kieran