[PATCH] meson: Add -finstrument-functions to debug builds

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed Nov 20 16:12:20 CET 2024


On Wed, Nov 20, 2024 at 11:24:31PM +0900, Paul Elder wrote:
> On Fri, Sep 13, 2024 at 02:07:14AM +0300, Laurent Pinchart wrote:
> > On Fri, Sep 13, 2024 at 01:00:35AM +0200, Paul Elder wrote:
> > > On Thu, Sep 12, 2024 at 05:58:54PM +0100, Kieran Bingham wrote:
> > > > Quoting Paul Elder (2024-09-12 17:49:09)
> > > > > Add -finstrument-functions to debug (and debugoptimized) build types.
> > > > > This will mainly be used for tracing functions with lttng by
> > > > > LD_PRELOADing liblttng-ust-cyg-profile.so (or
> > > > > liblttng-ust-cyg-profile-fast.so).
> > > > > 
> > > > > Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
> > > > > ---
> > > > >  meson.build | 6 ++++++
> > > > >  1 file changed, 6 insertions(+)
> > > > > 
> > > > > diff --git a/meson.build b/meson.build
> > > > > index 432ae1337..e8014e77f 100644
> > > > > --- a/meson.build
> > > > > +++ b/meson.build
> > > > > @@ -109,6 +109,12 @@ common_arguments = [
> > > > >      '-include', meson.current_build_dir() / 'config.h',
> > > > >  ]
> > > > >  
> > > > > +if get_option('buildtype').startswith('debug')
> > > > 
> > > > Why is this added to debug builds rather than any build with 'tracing
> > > > enabled' ?
> > > 
> > > On one hand, good point.
> > > 
> > > On the other hand, the function tracing *should* work without tracing
> > > enabled in libcamera. So technically they can be used separately. It's a
> > > matter of if we think there's an actual purpose for enabling it.
> > 
> > Do you envision function tracing to be used in production, or should
> > debugging issues in production rely on trace points only ?
> 
> tbh I'm not sure. But taking inspiration from the kernel, isn't ftrace
> usually disabled on production builds?

ftrace seems to be enabled in Debian kernels, so that would point to
making it usable in production.

I lack enough experience with tracing to tell what the best option is.

> > > > meson_options has:
> > > > 
> > > > option('tracing',
> > > >         type : 'feature',
> > > >         value : 'auto',
> > > >         description : 'Enable tracing (based on lttng)')
> > > > 
> > > > so this could be 'if get_option('tracing') ?
> > > > 
> > > > 
> > > > > +    common_arguments += [
> > > > > +        '-finstrument-functions',
> > > > > +    ]
> > > > > +endif
> > > > > +
> > > > >  c_arguments = []
> > > > >  cpp_arguments = []
> > > > >  

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list