mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 2/2] docs: disable KASLR when debugging kernel
@ 2017-07-07  7:14 Zhouyi Zhou
  2017-07-07  8:05 ` Kieran Bingham
  0 siblings, 1 reply; 3+ messages in thread
From: Zhouyi Zhou @ 2017-07-07  7:14 UTC (permalink / raw)
  To: corbet, jan.kiszka, kieran, akpm, linux-doc, linux-kernel; +Cc: Zhouyi Zhou

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 2/2] docs: disable KASLR when debugging kernel
  2017-07-07  7:14 [PATCH 2/2] docs: disable KASLR when debugging kernel Zhouyi Zhou
@ 2017-07-07  8:05 ` Kieran Bingham
  2017-07-07  8:32   ` Zhouyi Zhou
  0 siblings, 1 reply; 3+ messages in thread
From: Kieran Bingham @ 2017-07-07  8:05 UTC (permalink / raw)
  To: Zhouyi Zhou, corbet, jan.kiszka, kieran, akpm, linux-doc, linux-kernel

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 2/2] docs: disable KASLR when debugging kernel
  2017-07-07  8:05 ` Kieran Bingham
@ 2017-07-07  8:32   ` Zhouyi Zhou
  0 siblings, 0 replies; 3+ messages in thread
From: Zhouyi Zhou @ 2017-07-07  8:32 UTC (permalink / raw)
  To: Kieran Bingham
  Cc: Jonathan Corbet, J. Kiszka, Kieran Bingham, akpm, linux-doc,
	linux-kernel

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-07-07  8:32 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-07  7:14 [PATCH 2/2] docs: disable KASLR when debugging kernel Zhouyi Zhou
2017-07-07  8:05 ` Kieran Bingham
2017-07-07  8:32   ` Zhouyi Zhou

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®