History log of /external/ltrace/proc.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
dfefa9f057857735a073ea655f5cb34351032c8e 07-Jan-2014 Mark Wielaard <mjw@redhat.com> Add support for using elfutils as unwinder.

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.
/external/ltrace/proc.h
6bcc092da6b7e20c6c2a9a5846536fbd3d77dbb8 09-Jan-2014 Petr Machata <pmachata@redhat.com> Type proc_each_breakpoint properly
/external/ltrace/proc.h
af452c67bceba1326bb629d7c1a8241d54c09038 04-Jan-2014 Luca Clementi <luca.clementi@gmail.com> check return value of unw_get_reg and unw_get_proc_name

Before printng the current procedure name and IP verify their validity
/external/ltrace/proc.h
8a730f3e5844b86386032e93f91aa3df814ad9c3 21-Nov-2013 Petr Machata <pmachata@redhat.com> Consider exec and exit events an end of outstanding calls

- 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.
/external/ltrace/proc.h
df2c88cec5bf17a92f0d5d740e3b756f00b798c6 19-Mar-2013 Petr Machata <pmachata@redhat.com> The same work needs to be done on attach as when _start is hit

- Extract the logic to a separate function, called from open_pid and
entry_breakpoint_on_hit.

- 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.
/external/ltrace/proc.h
4dcc3893d488d19c7606acfa80752babbbe04645 30-Jan-2013 Petr Machata <pmachata@redhat.com> Drop return_addr from struct process

- 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.
/external/ltrace/proc.h
f9d93c50bd246ea7fd42e0c8ad24aa01467e76ac 30-Jan-2013 Petr Machata <pmachata@redhat.com> Fix tracing Thumb mode on ARM

- 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.
/external/ltrace/proc.h
dc70e76a94f842e2b8eaf0b9c2aabb829dc4826a 23-Jan-2013 Petr Machata <pmachata@redhat.com> Add proc_read_8
/external/ltrace/proc.h
7ac04edc87e07fc68f94274ba3ff0fb2a0a98958 23-Nov-2012 Petr Machata <pmachata@redhat.com> Clarify a parameter name in proc_each_library declaration
/external/ltrace/proc.h
d7e4ca82e1cf20bb2605befb1da74dd1688c706e 28-Nov-2012 Petr Machata <pmachata@redhat.com> Rewrite dict module to be more in line with vect

It's now a bit more strongly typed, can grow and shrink on demand, and has
a more complete interface.
It uses open addressing scheme to store hashes.
/external/ltrace/proc.h
653085a32cdc89f5215c2d70249b58c9fe6aebb7 15-Jan-2013 Petr Machata <pmachata@redhat.com> Move byte-reading routines from PPC backend to generic code

- Use backend hook umovebytes to read the bytes from inferior.
/external/ltrace/proc.h
929bd57ca202fd2f2e8485ebf65d683e664f67b5 17-Dec-2012 Petr Machata <pmachata@redhat.com> struct Process becomes struct process

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
lines.
/external/ltrace/proc.h
3240554e943bf773aa57b7e3e3bf80d7102a8b10 31-Oct-2012 Petr Machata <pmachata@redhat.com> New function proc_each_symbol
/external/ltrace/proc.h
6d8aa0bba1fb9473f6e92738975f6be73a6ac722 31-Oct-2012 Petr Machata <pmachata@redhat.com> Include forward.h instead of declaring stuff in proc.h
/external/ltrace/proc.h
165b566a50b2bd560af3bd9649e456915397066b 27-Oct-2012 Petr Machata <pmachata@redhat.com> Add proc_find_symbol, use it to find corresponding symbols for clones

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.
/external/ltrace/proc.h
47d70f6efd145113ad555dd2ba542d1050bbb784 26-Oct-2012 Petr Machata <pmachata@redhat.com> Use os_process_data for keeping debug status

This also takes care of a leak caused by malloc'ing struct debug. That
malloc is not done anymore, because the data is embedded in struct Process
by way of struct os_process_data.
/external/ltrace/proc.h
0f6e6d9861ce790cb8b7d07aca28a5878d705359 26-Oct-2012 Petr Machata <pmachata@redhat.com> Add os_process_data and related

This is meant to be the same for per-OS configuration as arch_process_data
is for per-arch configuration.
/external/ltrace/proc.h
cc77b0e0e735d598f4bc746f8e79b6cd342bd606 09-Oct-2012 Edgar E. Iglesias <edgar@axis.com> Export find_dynamic_entry_addr

Export find_dynamic_entry_addr as proc_find_dynamic_entry_addr.

Signed-off-by: Edgar E. Iglesias <edgar@axis.com>
/external/ltrace/proc.h
ef2fd27a347bbb0e7cca7fdee97422f6ae4d4bda 28-Sep-2012 Petr Machata <pmachata@redhat.com> Support latent and delayed symbols

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.
/external/ltrace/proc.h
a24021c5abfa8c2482e3224f14ac191cd0826a8f 25-Sep-2012 Petr Machata <pmachata@redhat.com> Extract enum callback_status to a separate module

Document the interface, refer to this documentation at declarations of
each_* functions.
/external/ltrace/proc.h
4d4e1b853db0c97b7c7f023bc301e3c3eee58ce4 30-May-2012 Petr Machata <pmachata@redhat.com> Track elf class in struct Process

Technically only s390 needs this at the moment, but it seems general enough
that it should be alongside the e_machine flag. Eventually it is desirable
to replace both fields with either a backend-provided ABI enum, or with
an ABI object that would implement the interesting back end calls.
/external/ltrace/proc.h
bac2da505ee174b7fb984b975c5938f88f0dbab2 29-May-2012 Petr Machata <pmachata@redhat.com> Move target_address_t to arch.h, rename to arch_addr_t

Note that the placement under arch.h is currently conceptual only. Since
no backend defines ARCH_HAVE_ADDRESS_TYPES, it's actually in sysdep.h in
all cases.
/external/ltrace/proc.h
ba1664b062414481d0f37d06bb01a19874c8d481 28-Apr-2012 Petr Machata <pmachata@redhat.com> Fix compilation
/external/ltrace/proc.h
f6ec08afb96292fd3c802c1f633d8de249664c72 06-Jan-2012 Petr Machata <pmachata@redhat.com> Add fetch.c/fetch.h, a module for fetching function arguments

- this is now a thin wrapper over gimme_arg, ideally the backends will
eventually use this right interface

- in display_args.c, strip one layer of pointer wrapping, which is now
done in output.c
/external/ltrace/proc.h
97f13e3fca546aa292ba5d8aa6011338e64f2f7a 06-Jan-2012 Petr Machata <pmachata@redhat.com> Drop unused interfaces save_register_args, struct stack_element.arch_ptr
/external/ltrace/proc.h
94078ecce3a103c28457e6f90f1e5b0dacc61146 05-Jan-2012 Petr Machata <pmachata@redhat.com> Add expr.c, expr.h, plug in properly

- in callstack_pop, we don't free arch_ptr. That's because this doesn't
get copied over the clone. It's a mere coincidence that fork() doesn't
need to save register arguments, and this works.

- added copyright notices to files that this touches. This is based on
git blame. Only contributors of 10+ lines are added

- test suite adjusted to not include "void" type as "don't show this int".
Back ends in general need to know the exact type, so this never worked
anyway.
/external/ltrace/proc.h
d2c5dfdf0c746bb0d0365505577461f0058aedf9 04-Aug-2012 Andrey Zonov <zont@FreeBSD.org> Add missed header for struct timeval
/external/ltrace/proc.h
8a568dd4ad368d37c059ec9c8da0e894417a27d9 18-May-2012 Petr Machata <pmachata@redhat.com> Add missing include config.h to proc.h
/external/ltrace/proc.h
fd2641c0d27705c89d224e3205b1296110b6598c 24-Apr-2012 Petr Machata <pmachata@redhat.com> Fix double frees, remove_process now releases memory

Presence in singly-linked list strongly indicates that process is heap
allocated, and that if we are about to stop tracing it, we should also
reclaim the memory.
/external/ltrace/proc.h
f7fee43f72667f453bba5aaeea6b5490ece6792a 19-Apr-2012 Petr Machata <pmachata@redhat.com> Implement proc_remove_breakpoint
/external/ltrace/proc.h
744f255ed0d676896dbe2f326b9c353c56438f0a 15-Apr-2012 Petr Machata <pmachata@redhat.com> Add arch_process arch hooks for per-arch struct Process customization
/external/ltrace/proc.h
3d0c91c0c7b425e2866f9c65f655d399693328a5 14-Apr-2012 Petr Machata <pmachata@redhat.com> Fixes for tracing across exec
/external/ltrace/proc.h
75934ad3b30790f6a892069576d0790a351ef101 14-Apr-2012 Petr Machata <pmachata@redhat.com> Drop parameters that determined whether breakpoints should be enabled
/external/ltrace/proc.h
d3cc9889fdfe2e523e99ca5f664f8ae4b3936612 13-Apr-2012 Petr Machata <pmachata@redhat.com> Fix breakpoint cloning
/external/ltrace/proc.h
0092820afcd45fe045ccc294b061bce8da00a1f2 07-Apr-2012 Petr Machata <pmachata@redhat.com> Drop process.fixed_libs, enable breakpoints right away

The theory behing fixed_libs was broken from the beginning, we can't tell
dlopened libraries from fixed ones when attaching. We also don't need to
wait for _start to enable breakpoints. We may need this on LS_TOPLT_POINT
architectures, but that was added for PPC, and PPC doesn't need it anymore.
/external/ltrace/proc.h
44965c7a1d3106439b20e8f36307f506df3df44b 06-Apr-2012 Petr Machata <pmachata@redhat.com> Hide unused add_process

- the one outstanding use was a bug, clone_process already adds the process
by the way of process_bare_init
/external/ltrace/proc.h
029171fffcf6328768866cf510763b2eb927f1bd 05-Apr-2012 Petr Machata <pmachata@redhat.com> Drop debug_state from struc process, use custom process.debug for that

- ideally we would define arch_proc_data in sysdeps/linux-gnu/os.h or some
such, same as we do with arch_breakpoint_data and others, but that's
currently not implemented, so do it this way.
/external/ltrace/proc.h
ecb082f480f057dc166c9d62e8776c892caf5e11 05-Apr-2012 Petr Machata <pmachata@redhat.com> Address hashing and comparison functions need to work with target_address_t

- ... not int, which is narrower than target_address_t on 64-bit machines
/external/ltrace/proc.h
76dd9290bd760f363a6f39db06020e61e3f7b345 03-Apr-2012 Petr Machata <pmachata@redhat.com> Add proc.fixed_libs

- use it to determine whether to turn on breakpoints in added libraries
if they were added after _start is hit
/external/ltrace/proc.h
52dbfb161efeab85bddc880966db2f7af9b9cf9a 29-Mar-2012 Petr Machata <pmachata@redhat.com> Shuffle breakpoint functions around
/external/ltrace/proc.h
ef7fa37f2d0b949b5afb1f326187e4f023d86c25 28-Mar-2012 Petr Machata <pmachata@redhat.com> Add CBS_FAIL to enum callback_status
/external/ltrace/proc.h
74132a447b18c588c698ecfb8cf4ad4b16360f2f 16-Mar-2012 Petr Machata <pmachata@redhat.com> Change iterators each_task, each_process, library_each_symbol

... now the restarts are supported by start_after instead of start.
Otherwise the restart scenario was something like:
for (it *sym = NULL; (sym = next(sym)) != NULL; )
if ((sym = sym->next) == NULL)
break;
which just seems too convoluted.
/external/ltrace/proc.h
2b46cfc1127d390eddd9593fe5ce5399c1f68130 18-Feb-2012 Petr Machata <pmachata@redhat.com> The first crude version of tracing across libraries

- the patch will be sliced later
/external/ltrace/proc.h
fd43ef7bb48260aadd4d8335371f75015e680108 10-Feb-2012 Petr Machata <pmachata@redhat.com> Move the Process typedef to proc.h
/external/ltrace/proc.h
366c2f46d844f040458df9b7e35fc3b8527ed2d3 09-Feb-2012 Petr Machata <pmachata@redhat.com> Move process-related functions and structures to proc.h
/external/ltrace/proc.h