<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi Christophe,<br>
    </p>
    <div class="moz-cite-prefix">On 5/13/20 9:42 AM, Christophe Bédard
      via lttng-dev wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAAS9dobxi52FyWn=9zVDkMMpmZztc1Q1msdiErMKhkDEYCtqCA@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div dir="ltr"><br>
        </div>
        <div class="gmail_quote">
          <div dir="ltr" class="gmail_attr">On Tue, 12 May 2020 at
            08:27, Mathieu Desnoyers <<a
              href="mailto:mathieu.desnoyers@efficios.com"
              target="_blank" moz-do-not-send="true">mathieu.desnoyers@efficios.com</a>>
            wrote:</div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex">
            <div>
              <div
style="font-family:arial,helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
                <div>
                  <div>How does your test program issue the system call
                    ? Is it directly with syscall() (see syscall(2) man
                    page), or<br>
                  </div>
                  <div>does it call into libc ? Is your entire libc
                    compiled with -fno-omit-frame-pointer ?</div>
                </div>
              </div>
            </div>
          </blockquote>
          <div><br>
          </div>
          <div>Indirectly, through libc/libstdc++. We use the default
            system libs (which I assume use -O, which in turn implies
            -fomit-frame-pointer).</div>
          <div> </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex">
            <div
style="font-family:arial,helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
              <div>As soon as one library in the chain to the system
                call is compiled without frame pointers, this is where
                the<br>
              </div>
              <div>stack walk stops. This is usually libc.</div>
            </div>
          </blockquote>
          <div><br>
          </div>
          <div>I see. Thanks for the information. Not sure we want to
            ship a custom libc unfortunately.</div>
          <div><br>
          </div>
          <div>Related question: how feasible would adding the
            callstack-user context to userspace events be? If it is
            feasible, is such a feature planned?</div>
        </div>
      </div>
    </blockquote>
    <p>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.</p>
    <p> 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.</p>
    <p>Geneviève</p>
    <p><br>
    </p>
  </body>
</html>