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
|