On Mon, Nov 29, 2010 at 17:59, Andi Kleen <andi@xxxxxxxxxxxxxx> wrote: > Hui Zhu <teawater@xxxxxxxxx> 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. > If you think they are OK, go get a new gcc and try. :) >> >> 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 ? > If I can build OK, why I need add some options? Thanks, Hui