Hi Christophe,

On 5/13/20 9:42 AM, Christophe Bédard via lttng-dev wrote:

On Tue, 12 May 2020 at 08:27, Mathieu Desnoyers <mathieu.desnoyers@efficios.com> wrote:
How does your test program issue the system call ? Is it directly with syscall() (see syscall(2) man page), or
does it call into libc ? Is your entire libc compiled with -fno-omit-frame-pointer ?

Indirectly, through libc/libstdc++. We use the default system libs (which I assume use -O, which in turn implies -fomit-frame-pointer).
 
As soon as one library in the chain to the system call is compiled without frame pointers, this is where the
stack walk stops. This is usually libc.

I see. Thanks for the information. Not sure we want to ship a custom libc unfortunately.

Related question: how feasible would adding the callstack-user context to userspace events be? If it is feasible, is such a feature planned?

We had a very very experimental branch with it, using backtrace first, then unwind. But it is not suggested, not performant. It's far from the correct desired implementation, for which Mathieu could give more details.

It works, but not to be used in production. Students have used it in the lab for some specific use case prototyping. I won't share the branch here, but if you wish to try, let me know.

Geneviève