Message ID | 20220804223504.4739-1-dmitrii.bundin.a@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | kbuild: add option to set max level of debug info | expand |
On Fri, 5 Aug 2022 01:35:04 +0300 Dmitrii Bundin <dmitrii.bundin.a@gmail.com> wrote: > When compiling with -g3 option and debugging with gdb it provides some > extra abilities like macro expand, info macro etc... It's sometimes > useful to unerstand behavior of complicated macros. > > --- a/lib/Kconfig.debug > +++ b/lib/Kconfig.debug > @@ -304,6 +304,15 @@ config DEBUG_INFO_REDUCED > DEBUG_INFO build and compile times are reduced too. > Only works with newer gcc versions. > > +config DEBUG_INFO_MAXLEVEL > + bool "Maximum debug information level" > + depends on !DEBUG_INFO_REDUCED > + default n > + help > + Sets the maximum level of debug information compilers may generate > + (-g3). Enabling this option will require significantly more disk space > + and increase built time, but it's useful for debugging purposes. > + > config DEBUG_INFO_COMPRESSED > bool "Compressed debugging information" > depends on $(cc-option,-gz=zlib) > diff --git a/scripts/Makefile.debug b/scripts/Makefile.debug > index 9f39b0130551..7e1d8beecfc4 100644 > --- a/scripts/Makefile.debug > +++ b/scripts/Makefile.debug > @@ -2,6 +2,8 @@ DEBUG_CFLAGS := > > ifdef CONFIG_DEBUG_INFO_SPLIT > DEBUG_CFLAGS += -gsplit-dwarf > +else ifdef CONFIG_DEBUG_INFO_MAXLEVEL > +DEBUG_CFLAGS += -g3 > else > DEBUG_CFLAGS += -g > endif What happens when the gcc developers add -g4? Or if a user wants -g2? In other words, can we make this a Kconfig-selectable level, with the default `1'?
> In other words, can we make this a Kconfig-selectable level, with the > default `1'? Thanks for pointing this out. Here is a little note from my side. According to the GCC documentation the default level is 2. So I would propose to set the default Kconfig option value to 2 as well to not change the build behavior. Does this sound reasonable? Regards, Dmitrii On Fri, Aug 12, 2022 at 12:58 AM Andrew Morton <akpm@linux-foundation.org> wrote: > > On Fri, 5 Aug 2022 01:35:04 +0300 Dmitrii Bundin <dmitrii.bundin.a@gmail.com> wrote: > > > When compiling with -g3 option and debugging with gdb it provides some > > extra abilities like macro expand, info macro etc... It's sometimes > > useful to unerstand behavior of complicated macros. > > > > --- a/lib/Kconfig.debug > > +++ b/lib/Kconfig.debug > > @@ -304,6 +304,15 @@ config DEBUG_INFO_REDUCED > > DEBUG_INFO build and compile times are reduced too. > > Only works with newer gcc versions. > > > > +config DEBUG_INFO_MAXLEVEL > > + bool "Maximum debug information level" > > + depends on !DEBUG_INFO_REDUCED > > + default n > > + help > > + Sets the maximum level of debug information compilers may generate > > + (-g3). Enabling this option will require significantly more disk space > > + and increase built time, but it's useful for debugging purposes. > > + > > config DEBUG_INFO_COMPRESSED > > bool "Compressed debugging information" > > depends on $(cc-option,-gz=zlib) > > diff --git a/scripts/Makefile.debug b/scripts/Makefile.debug > > index 9f39b0130551..7e1d8beecfc4 100644 > > --- a/scripts/Makefile.debug > > +++ b/scripts/Makefile.debug > > @@ -2,6 +2,8 @@ DEBUG_CFLAGS := > > > > ifdef CONFIG_DEBUG_INFO_SPLIT > > DEBUG_CFLAGS += -gsplit-dwarf > > +else ifdef CONFIG_DEBUG_INFO_MAXLEVEL > > +DEBUG_CFLAGS += -g3 > > else > > DEBUG_CFLAGS += -g > > endif > > What happens when the gcc developers add -g4? Or if a user wants -g2? > > In other words, can we make this a Kconfig-selectable level, with the > default `1'?
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 2e24db4bff19..1e8bef3e2a95 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -304,6 +304,15 @@ config DEBUG_INFO_REDUCED DEBUG_INFO build and compile times are reduced too. Only works with newer gcc versions. +config DEBUG_INFO_MAXLEVEL + bool "Maximum debug information level" + depends on !DEBUG_INFO_REDUCED + default n + help + Sets the maximum level of debug information compilers may generate + (-g3). Enabling this option will require significantly more disk space + and increase built time, but it's useful for debugging purposes. + config DEBUG_INFO_COMPRESSED bool "Compressed debugging information" depends on $(cc-option,-gz=zlib) diff --git a/scripts/Makefile.debug b/scripts/Makefile.debug index 9f39b0130551..7e1d8beecfc4 100644 --- a/scripts/Makefile.debug +++ b/scripts/Makefile.debug @@ -2,6 +2,8 @@ DEBUG_CFLAGS := ifdef CONFIG_DEBUG_INFO_SPLIT DEBUG_CFLAGS += -gsplit-dwarf +else ifdef CONFIG_DEBUG_INFO_MAXLEVEL +DEBUG_CFLAGS += -g3 else DEBUG_CFLAGS += -g endif
When compiling with -g3 option and debugging with gdb it provides some extra abilities like macro expand, info macro etc... It's sometimes useful to unerstand behavior of complicated macros. Signed-off-by: Dmitrii Bundin <dmitrii.bundin.a@gmail.com> --- lib/Kconfig.debug | 9 +++++++++ scripts/Makefile.debug | 2 ++ 2 files changed, 11 insertions(+)