Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1682974 > unrolled thread

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

Started byZhouyi Zhou <zhouzhouyi@gmail.com>
First post2017-07-07 09:20 +0200
Last post2017-07-07 10:40 +0200
Articles 3 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 2/2] docs: disable KASLR when debugging kernel Zhouyi Zhou <zhouzhouyi@gmail.com> - 2017-07-07 09:20 +0200
    Re: [PATCH 2/2] docs: disable KASLR when debugging kernel Kieran Bingham <kbingham@kernel.org> - 2017-07-07 10:10 +0200
      Re: [PATCH 2/2] docs: disable KASLR when debugging kernel Zhouyi Zhou <zhouzhouyi@gmail.com> - 2017-07-07 10:40 +0200

#1682974 — [PATCH 2/2] docs: disable KASLR when debugging kernel

FromZhouyi Zhou <zhouzhouyi@gmail.com>
Date2017-07-07 09:20 +0200
Subject[PATCH 2/2] docs: disable KASLR when debugging kernel
Message-ID<u0vIu-ww-11@gated-at.bofh.it>
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>
---
 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 .
   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
 
-- 
1.9.1

[toc] | [next] | [standalone]


#1683002

FromKieran Bingham <kbingham@kernel.org>
Date2017-07-07 10:10 +0200
Message-ID<u0wuR-17W-1@gated-at.bofh.it>
In reply to#1682974
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@gmail.com>
> ---
>  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@kernel.org>


>    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

[toc] | [prev] | [next] | [standalone]


#1683025

FromZhouyi Zhou <zhouzhouyi@gmail.com>
Date2017-07-07 10:40 +0200
Message-ID<u0wXU-1kR-13@gated-at.bofh.it>
In reply to#1683002
Hi Kieran,
    Thanks for your review and invaluable advise, I will prepare a new
version immediately.

On Fri, Jul 7, 2017 at 4:05 PM, Kieran Bingham <kbingham@kernel.org> wrote:
> 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@gmail.com>
>> ---
>>  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@kernel.org>
>
>
>>    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

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web