1. 11 Nov, 2015 2 commits
  2. 09 Jan, 2014 2 commits
    • 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.
    • Petr Machata's avatar
      Type proc_each_breakpoint properly · 6bcc092d
      Petr Machata authored
  3. 05 Jan, 2014 1 commit
  4. 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.
  5. 19 Mar, 2013 1 commit
    • Petr Machata's avatar
      The same work needs to be done on attach as when _start is hit · df2c88ce
      Petr Machata authored
      - Extract the logic to a separate function, called from open_pid and
      - Since there is no other way to get on dyn_addr in open_pid anyway,
        simply look for the main library, and read it there.  That means we
        don't need to track that information at entry_breakpoint anymore,
        and we can get rid of struct entry_breakpoint.
  6. 11 Mar, 2013 3 commits
    • 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.
    • Petr Machata's avatar
      Fix tracing Thumb mode on ARM · f9d93c50
      Petr Machata authored
      - Drop what amounts to global variable thumb_mode from struct process
      - Thumb mode is encoded to address.  That means that the code in
        callstack_push_symfunc and insert_breakpoint has to assume that
        what comes from get_return_address is mangled, and needs to go
        through creating the breakpoint and then looking at its address.
        That's awkward, and we should come up with a better API.
    • Petr Machata's avatar
      Add proc_read_8 · dc70e76a
      Petr Machata authored
  7. 08 Mar, 2013 2 commits
  8. 15 Jan, 2013 1 commit
  9. 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
  10. 31 Oct, 2012 2 commits
  11. 27 Oct, 2012 1 commit
    • Petr Machata's avatar
      Add proc_find_symbol, use it to find corresponding symbols for clones · 165b566a
      Petr Machata authored
      The code in breakpoint_clone was buggy--it looked through old_proc's
      symbols.  It was also needlessly verbose, proc_find_symbol uses library
      key to find the right library.  Instead use the new interface and call
      it on new_proc to find the new symbol.
      We also didn't relink symbols in stack elements of a cloned process in
      process_clone.  Use proc_find_symbol for this as well.
  12. 26 Oct, 2012 2 commits
  13. 15 Oct, 2012 1 commit
  14. 01 Oct, 2012 1 commit
    • Petr Machata's avatar
      Support latent and delayed symbols · ef2fd27a
      Petr Machata authored
      Neither latent, nor delayed symbols are given a breakpoint.  The difference
      is in who's responsible for the state.  Latent symbols are (will be) used
      by ltrace core.  Delayed symbols are used by backends.  Only when both of
      these flags are cleared is a breakpoint enabled for the symbol.
  15. 25 Sep, 2012 1 commit
  16. 29 Aug, 2012 7 commits
  17. 18 May, 2012 1 commit
  18. 24 Apr, 2012 1 commit
  19. 19 Apr, 2012 1 commit
  20. 18 Apr, 2012 8 commits