How can I disable compile optimization in kernel for friendly debugging, Thanks

Greg KH greg at kroah.com
Fri Apr 20 11:44:12 EDT 2018


On Fri, Apr 20, 2018 at 11:39:10PM +0800, Yubin Ruan wrote:
> On 2018-04-19 13:28, valdis.kletnieks at vt.edu wrote:
> > On Thu, 19 Apr 2018 16:58:40 +0800, sizel said:
> > >  How can I disable compile optimization in kernel for friendly  debugging, Thanks
> > 
> > First off, there are parts of the kernel that *WILL* explode if you try to build
> > with -O0 - in particular, any code that expects static inlines to be treated as
> > part of the unit they are inlined into for the purposes of __builtin_return_address()
> > and similar.
> 
> Can you elaborate more on that?
>  
> > Second, modern gdb is perfectly able to deal with -O2 optimization,
> > especially if you build with -g.  (In the kernel build, CONFIG_DEBUG_INFO=y
> > will do the right thing for this).
> 
> I don't think so. According to my experience, GDB is not good enough to deal
> with -O2 optimization.
> 
> Maybe my gdb is not modern enough? I am using gdb7.11 (Ubuntu 7.11.1-0ubuntu1~16.5)

That is an old version of gdb, why not try a more modern one?

Also, why do you even need to use a debugger on a kernel image?  It's
very rare that this is needed, with all of the built-in debugging tools
that the kernel already has.  What have you tried that did not work out?

Usually gdb is only needed if you are bringing up new hardware.

good luck!

greg k-h



More information about the Kernelnewbies mailing list