Age | Commit message (Collapse) | Author | Files | Lines |
|
restartable
These function now takes a *start_after, and return a pointer to the first
failing key, like the other ltrace iterators
|
|
Some libraries have multiple names for the same function. Prior to this patch,
it was possible to define a prototype for a symbol, and not have ltrace use it
because it saw a different symbol be called. libc is a common source of this.
For instance (on my amd64 Debian box) it defines the nanosleep symbol as both
'nanosleep' and '__GI___nanosleep', at the same address. If a calling library
calls '__GI___nanosleep', then an ltrace prototype for 'nanosleep' would not be
used, even though it should apply to this call
|
|
|
|
- Tabs should be 8 characters.
- Lines should be no longer than 80 characters
- Pointer star belongs to the variable, not the type
- Lines shouldn't be formatted into tables arbitrarily
- if and while should get a space before the paren
|
|
|
|
Previously if a .conf file for a library was available, the corresponding DWARF
data would not be parsed. Now I use one to complement the other
|
|
|
|
|
|
|
|
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.
|
|
- Fix some coding style issues in output.c
- Add a couple items to TODO
|
|
This bug was introduced in af452c6
Reported-by: Petr Machata <pmachata@redhat.com>
|
|
Before printng the current procedure name and IP verify their validity
|
|
- 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.
|
|
|
|
|
|
|