1. 11 Nov, 2015 9 commits
  2. 09 Jan, 2014 1 commit
    • Mark Wielaard's avatar
      Add support for using elfutils as unwinder. · dfefa9f0
      Mark Wielaard authored
      This adds support for using elfutils as unwinder with -w. Since elfutils
      0.158 elfutils contains a simple unwinder interface that matches nicely
      on the ltrace backtrace support.
      The code reuses the libunwind infrastructure already in ltrace where
      possible (by defining HAVE_UNWINDER which is 1 if either libunwind or
      elfutils is used). It also reuses the ltrace proc_add_library callback
      to keep track of the ELF files mapped for the unwinder.
      The current implementation matches the output as if libunwind was used.
      But elfutils can also provide some more information since it can lookup
      the DWARF debuginfo. So if the source info of an address can be found
      through elfutils the backtrace will also include this as an additional
      output line per frame.
  3. 07 Jan, 2014 2 commits
  4. 05 Jan, 2014 1 commit
  5. 21 Nov, 2013 1 commit
    • Petr Machata's avatar
      Consider exec and exit events an end of outstanding calls · 8a730f3e
      Petr Machata authored
      - This cleans up a lot of stuff.  The actual substance is addition of
        account_current_callstack in handle_event.c (which however uses
        those cleaned-up interfaces).
      - trace-exec.exp was extended to check that the exec syscall can be
        seen in -c output.  That's one of the symptoms of what this fixes.
      - This hides dict_opt_c in summary.c.  It also gets rid of the global
        variable current_time_spent--instead, the information is passed via
        a function argument in a struct timedelta (so that we never confuse
        absolute time with relative).  callstack_element.time_spent was renamed
        to .enter_time, as that is what it has always been.
  6. 24 Oct, 2013 1 commit
  7. 23 Oct, 2013 1 commit
  8. 22 Oct, 2013 3 commits
    • Luca Clementi's avatar
    • Petr Machata's avatar
    • Petr Machata's avatar
      System calls are now part of dedicated symbol library · 82f748d1
      Petr Machata authored
      - This symbol library is still special in that symbols are created on
        demand and never actually added.  It just serves as a link to
        protolibrary with system call prototypes, and has a name (SYS).
      - Prototypes for system calls were moved to a dedicated prototype
        library called syscalls.conf.
      - Because it's undesirable to look up syscall prototypes in anything
        but the dedicated syscall protolib, prototype.c/.h now understand
        that some lookups shouldn't be done recursively (and so we never
        pick the definition from -F file that just happens to have the same
        name as a system call).  The good thing is that now libraries can
        actually use symbols named SYS_something without clashing with
        system call prototypes.
      - One test case needed to be updated, because we now display system
        calls as [email protected] instead of SYS_something.
  9. 18 Oct, 2013 1 commit
    • Luca Clementi's avatar
      add library path to stack trace output when using -w · 2927648b
      Luca Clementi authored
      For each stack frame prints the library path containing the code
      pointed by the IP.
      The output format is similar to the return value of backtrace_symbols
      function found in glibc, e.g.:
       > /bin/ls(_init+0x19be) [0x40398e]
       > /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) [0x7f50cbc3676d]
       > /bin/ls(_init+0x25fd) [0x4045cd]
  10. 26 Sep, 2013 1 commit
  11. 11 Mar, 2013 1 commit
    • Petr Machata's avatar
      Drop return_addr from struct process · 4dcc3893
      Petr Machata authored
      - The only interesting use seems to be in output.c, but there we assume
        we are working with top-of-callstack anyway, and store fetch context
        there, so we can simply fetch the return address this way as well.
  12. 08 Mar, 2013 14 commits
  13. 14 Feb, 2013 1 commit
  14. 17 Dec, 2012 1 commit
    • Petr Machata's avatar
      struct Process becomes struct process · 929bd57c
      Petr Machata authored
      This is for consistency with other structures, and ultimately with
      Linux coding style.  The typedef ("Process") was dropped as well for
      this reason.
      This opportunity was used to fix coding style around the impacted
  15. 10 Dec, 2012 2 commits