This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Built kernel without -O2 option
- From: Andi Kleen <andi at firstfloor dot org>
- To: Hui Zhu <teawater at gmail dot com>
- Cc: linux-kernel at vger dot kernel dot org, gdb at sourceware dot org, hellogcc at freelists dot org
- Date: Mon, 29 Nov 2010 10:59:40 +0100
- Subject: Re: [PATCH] Built kernel without -O2 option
- References: <AANLkTimewZ4QhxzL2vOYYV85pegy8Fu6Rb4XUAPqGUXS@mail.gmail.com>
Hui Zhu <teawater@gmail.com> writes:
> Now, there are a lot of ways to debug the Linux kernel with GDB, like
> qemu, kgtp or kgdb and so on.
> But the developer more like add a printk. It have a lot of reason, a big one is:
> (gdb) p ret
> $3 = <value optimized out>
> And the code execution order is not right.
Really the right place to fix a lot of this would be gcc (and perhaps
gdb). I suspect with some careful work the debugging experience
for -O2 could be improved a lot.
I also believe the latest gccs already have improvements in this area.
>
> This is becuase the Kernel is bult with gcc -O2. Gcc will not
> generate enough debug message with file with -O2.
> So GDB cannot work very well with Linux kernel.
>
> So I make a patch that add a option in "Kernel hacking" called "Close
> GCC optimization". It will make kernel be built without -O2.
You need to at least keep aggressive inlining for header files,
otherwise there will be too much code bloat and bad code.
Like -O1 -finline-functions ?
-Andi
--
ak@linux.intel.com -- Speaking for myself only.