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

Paul Elder paul.elder at ideasonboard.com
Wed Nov 20 15:24:31 CET 2024


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?


Paul

> 
> > > 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 = []
> > > >  


More information about the libcamera-devel mailing list