platform/upstream/ltrace.git
10 years agoDWARF prototypes are now generated with both the plain and the linkage names
Dima Kogan [Tue, 3 Jun 2014 00:43:16 +0000 (17:43 -0700)]
DWARF prototypes are now generated with both the plain and the linkage names

If a die has a DW_AT_linkage_name, I now use it: this is required for C++ code,
in particular.

I use the plain name regardless, since sometimes the exported symbol corresponds
to the plain name, NOT the linkage name. For instance I see this on my
Debian/sid amd64 box. In its libc, the linkage name of __nanosleep is
__GI___nanosleep, but the export is __nanosleep

10 years agoWe now use known prototypes for all aliased symbols (same address)
Dima Kogan [Mon, 2 Jun 2014 09:01:57 +0000 (02:01 -0700)]
We now use known prototypes for all aliased symbols (same address)

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

10 years agodict_hash_uint64: do not ignore upper 32 bits of the quantity
Petr Machata [Tue, 17 Jun 2014 15:06:00 +0000 (17:06 +0200)]
dict_hash_uint64: do not ignore upper 32 bits of the quantity

10 years agoadded hash and equality functions for uint64_t
Dima Kogan [Mon, 2 Jun 2014 06:37:28 +0000 (23:37 -0700)]
added hash and equality functions for uint64_t

The hash function is identical to the 32-bit signed int hash function. This
function is unideal for such extended use, but is sufficient for now

10 years agoadded NEWS, CREDITS info about the new DWARF prototyping code
Dima Kogan [Mon, 12 May 2014 00:02:16 +0000 (17:02 -0700)]
added NEWS, CREDITS info about the new DWARF prototyping code

10 years agoAdded manpage section giving examples of -x, -e and -l usage
Dima Kogan [Tue, 3 Jun 2014 06:00:50 +0000 (23:00 -0700)]
Added manpage section giving examples of -x, -e and -l usage

10 years agoMaking sure to not double-examine the same DWARF CU
Dima Kogan [Wed, 21 May 2014 10:47:33 +0000 (03:47 -0700)]
Making sure to not double-examine the same DWARF CU

10 years agoCREDITS update for ppc64el support
Thierry Fauck [Thu, 15 May 2014 15:21:52 +0000 (11:21 -0400)]
CREDITS update for ppc64el support

Signed-off-by: Thierry Fauck <thierry@linux.vnet.ibm.com>
10 years agoIn ppc-lwarx.exp, Dwarf backend may resolve atomic_add's prototype
Petr Machata [Thu, 15 May 2014 15:12:23 +0000 (17:12 +0200)]
In ppc-lwarx.exp, Dwarf backend may resolve atomic_add's prototype

- in which case the patterns are wrong.  Change the pattern to match
  both cases.

10 years agoSupport for powerpc64 arch ppc64el
Thierry Fauck [Tue, 13 May 2014 11:48:24 +0000 (07:48 -0400)]
Support for powerpc64 arch ppc64el

Signed-off-by: Thierry Fauck <thierry@linux.vnet.ibm.com>
Add support for ppc64le proc and ELF ABIv2.
Provides support for irelative and wchar

10 years agoI only build the dwarf_prototypes if we have libdw
Dima Kogan [Mon, 12 May 2014 20:14:04 +0000 (13:14 -0700)]
I only build the dwarf_prototypes if we have libdw

10 years agoremoved needless cast
Dima Kogan [Sun, 11 May 2014 21:20:12 +0000 (14:20 -0700)]
removed needless cast

10 years agoadded forgotten error checking to some ltrace calls
Dima Kogan [Sun, 11 May 2014 19:44:55 +0000 (12:44 -0700)]
added forgotten error checking to some ltrace calls

10 years agofixed typo
Dima Kogan [Sun, 11 May 2014 19:22:11 +0000 (12:22 -0700)]
fixed typo

10 years agoI only explicitly look at sizeof(long) if it differs from sizeof(int)
Dima Kogan [Sun, 11 May 2014 19:22:00 +0000 (12:22 -0700)]
I only explicitly look at sizeof(long) if it differs from sizeof(int)

If they're the same, checking for both in a switch() is a compile error

10 years agostyle whitespace changes
Dima Kogan [Sun, 11 May 2014 19:21:24 +0000 (12:21 -0700)]
style whitespace changes

- * with name, not type
- if (blah), not if( blah )

10 years agowhitespace style change
Dima Kogan [Sat, 3 May 2014 08:08:40 +0000 (01:08 -0700)]
whitespace style change

 - 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

10 years agoa bit more debug printing
Dima Kogan [Sat, 3 May 2014 07:39:38 +0000 (00:39 -0700)]
a bit more debug printing

10 years agoadded a bit more diagnostic printing
Dima Kogan [Fri, 2 May 2014 00:21:55 +0000 (17:21 -0700)]
added a bit more diagnostic printing

10 years agofixed memory leaks
Dima Kogan [Thu, 1 May 2014 08:15:18 +0000 (01:15 -0700)]
fixed memory leaks

Two leaks plugged:

1. value used for array-length
2. prototype return type

10 years agofixed prototype memory leak
Dima Kogan [Thu, 1 May 2014 08:01:18 +0000 (01:01 -0700)]
fixed prototype memory leak

protolib_add_prototype() makes a copy of the prototype, so allocating a new
pointer there was an error

10 years agoremoved notes
Dima Kogan [Wed, 30 Apr 2014 11:25:58 +0000 (04:25 -0700)]
removed notes

10 years agoremoved, commented testing code
Dima Kogan [Wed, 30 Apr 2014 11:25:41 +0000 (04:25 -0700)]
removed, commented testing code

10 years agodwarf diagnostic output now controlled by -D
Dima Kogan [Wed, 30 Apr 2014 11:17:35 +0000 (04:17 -0700)]
dwarf diagnostic output now controlled by -D

10 years agofixed broken diagnostic output
Dima Kogan [Wed, 30 Apr 2014 11:10:52 +0000 (04:10 -0700)]
fixed broken diagnostic output

10 years agoreworked error and memory handling
Dima Kogan [Wed, 30 Apr 2014 10:35:13 +0000 (03:35 -0700)]
reworked error and memory handling

I now longer exit() on the slightest sign of trouble, nor do I leak all my heap
memory allocations

10 years agounknown pointers now return void*, not void
Dima Kogan [Wed, 30 Apr 2014 06:57:39 +0000 (23:57 -0700)]
unknown pointers now return void*, not void

10 years agoDWARF parser now looks for exported types
Dima Kogan [Mon, 28 Apr 2014 16:24:39 +0000 (09:24 -0700)]
DWARF parser now looks for exported types

I now pass true to protolib_lookup_type(). Thus the user can now define a type
in .ltrace.conf, and it would be picked up

10 years agorenamed type_hash -> type_dieoffset_hash
Dima Kogan [Sun, 27 Apr 2014 23:30:12 +0000 (16:30 -0700)]
renamed type_hash -> type_dieoffset_hash

10 years agotype_hash is no longer global
Dima Kogan [Sun, 27 Apr 2014 23:29:02 +0000 (16:29 -0700)]
type_hash is no longer global

10 years agoI now read the DWARF data in addition to the .conf files
Dima Kogan [Wed, 23 Apr 2014 23:15:57 +0000 (16:15 -0700)]
I now read the DWARF data in addition to the .conf files

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

10 years agoIf a functions is defined in a .conf, I do not parse the DWARF
Dima Kogan [Wed, 23 Apr 2014 22:55:41 +0000 (15:55 -0700)]
If a functions is defined in a .conf, I do not parse the DWARF

Previously I would parse the DWARF data for such a function, but I wouldn't use
the result. Now I don't even parse

10 years agotypes defined in .conf files now take precedence over DWARF types
Dima Kogan [Wed, 23 Apr 2014 22:54:49 +0000 (15:54 -0700)]
types defined in .conf files now take precedence over DWARF types

10 years agostyle whitespace
Dima Kogan [Wed, 23 Apr 2014 22:45:40 +0000 (15:45 -0700)]
style whitespace

10 years agoimport_DWARF_prototypes() now takes JUST a lib argument
Dima Kogan [Wed, 23 Apr 2014 10:41:55 +0000 (03:41 -0700)]
import_DWARF_prototypes() now takes JUST a lib argument

10 years agomoved DWARF prototype reading to library_get_prototype()
Dima Kogan [Wed, 23 Apr 2014 10:01:20 +0000 (03:01 -0700)]
moved DWARF prototype reading to library_get_prototype()

10 years agoupdated error message to reflect the new dwfl use case
Dima Kogan [Wed, 23 Apr 2014 09:43:21 +0000 (02:43 -0700)]
updated error message to reflect the new dwfl use case

10 years agowhitespace
Dima Kogan [Wed, 23 Apr 2014 09:42:58 +0000 (02:42 -0700)]
whitespace

10 years agoStylistic refactoring. No functional changes
Dima Kogan [Wed, 23 Apr 2014 07:47:52 +0000 (00:47 -0700)]
Stylistic refactoring. No functional changes

10 years agoI now import functions using their linkage name
Dima Kogan [Wed, 23 Apr 2014 07:06:45 +0000 (00:06 -0700)]
I now import functions using their linkage name

This is required for C++ methods

10 years agoenums are no longer assumed to have type 'int'
Dima Kogan [Wed, 23 Apr 2014 07:02:34 +0000 (00:02 -0700)]
enums are no longer assumed to have type 'int'

10 years agoreworked attr_numeric() to report failures
Dima Kogan [Tue, 22 Apr 2014 23:22:08 +0000 (16:22 -0700)]
reworked attr_numeric() to report failures

This whole file is thus copyright me

10 years agoadded a disabled stub for complex float support
Dima Kogan [Tue, 22 Apr 2014 22:15:55 +0000 (15:15 -0700)]
added a disabled stub for complex float support

10 years agoa bit more debug printing
Dima Kogan [Tue, 22 Apr 2014 22:15:27 +0000 (15:15 -0700)]
a bit more debug printing

10 years agostyle changes
Dima Kogan [Tue, 22 Apr 2014 20:21:32 +0000 (13:21 -0700)]
style changes

- no spaces in ()
- hanging braces
- no camelCase
- collapsed long lines

10 years agodebug-printing via complain()
Dima Kogan [Tue, 22 Apr 2014 19:58:13 +0000 (12:58 -0700)]
debug-printing via complain()

10 years agoadded explicit support for some more types
Dima Kogan [Tue, 22 Apr 2014 19:57:03 +0000 (12:57 -0700)]
added explicit support for some more types

- boolean constant
- long long double (as void)
- variable-length array (assuming len 0)
- union (as void)
- empty compile units

10 years agoadded some optional debug printing
Dima Kogan [Tue, 22 Apr 2014 11:20:32 +0000 (04:20 -0700)]
added some optional debug printing

10 years agotree dumping goes to stderr
Dima Kogan [Tue, 22 Apr 2014 11:19:25 +0000 (04:19 -0700)]
tree dumping goes to stderr

10 years agoinitial prototypes-from-dwarf implementation
Dima Kogan [Sat, 12 Apr 2014 03:39:34 +0000 (20:39 -0700)]
initial prototypes-from-dwarf implementation

10 years agofixed typo: toplevel_format_lens() now uses ptr data when talking about pointers
Dima Kogan [Sun, 13 Apr 2014 04:59:26 +0000 (21:59 -0700)]
fixed typo: toplevel_format_lens() now uses ptr data when talking about pointers

10 years agoFix lookup of prototypes from non-leader threads
Petr Machata [Tue, 6 May 2014 10:53:03 +0000 (12:53 +0200)]
Fix lookup of prototypes from non-leader threads

10 years agoAdd a couple TODO items
Petr Machata [Tue, 6 May 2014 10:23:54 +0000 (12:23 +0200)]
Add a couple TODO items

10 years agoImprove wording on -e, -x, -l in ltrace.1
Petr Machata [Mon, 28 Apr 2014 09:50:49 +0000 (11:50 +0200)]
Improve wording on -e, -x, -l in ltrace.1

10 years agoAdd missing #include stdio.h
dann frazier [Wed, 12 Mar 2014 21:57:23 +0000 (15:57 -0600)]
Add missing #include stdio.h

Include stdio.h in files that use fprintf()

Signed-off-by: dann frazier <dannf@debian.org>
10 years agoadd missing <stdint.h> include
dann frazier [Wed, 12 Mar 2014 21:51:44 +0000 (15:51 -0600)]
add missing <stdint.h> include

aarch64's fetch.c uses the uintptr_t typedef defined by stdint.h without
including it. This doesn't currently cause a build failure because stdint.h
is indirectly included via proc.h.

Signed-off-by: dann frazier <dannf@debian.org>
10 years agoAdd --config to man, drop -X from options.c
Petr Machata [Fri, 28 Feb 2014 11:37:15 +0000 (12:37 +0100)]
Add --config to man, drop -X from options.c

10 years agoInitialize struct process.e_machine and .e_class for secondary threads
Petr Machata [Thu, 13 Feb 2014 15:02:50 +0000 (16:02 +0100)]
Initialize struct process.e_machine and .e_class for secondary threads

10 years agoAdd some stuff to libc.so.conf
Petr Machata [Wed, 5 Feb 2014 02:31:07 +0000 (21:31 -0500)]
Add some stuff to libc.so.conf

10 years agoUpdate NEWS, README
Petr Machata [Wed, 5 Feb 2014 01:46:07 +0000 (02:46 +0100)]
Update NEWS, README

10 years agoImplement aarch64 support
Petr Machata [Thu, 23 Jan 2014 23:50:06 +0000 (00:50 +0100)]
Implement aarch64 support

- IFUNC support is not implemented, the rest works well.  The only
  other failure is in wide char functions, and that occurs on x86_64
  as well.

10 years agoSet child stack alignment in trace-clone.c
Petr Machata [Wed, 5 Feb 2014 00:57:50 +0000 (19:57 -0500)]
Set child stack alignment in trace-clone.c

- This is important on aarch64, which requires 16-byte aligned
  stack pointer.  This might be relevant on other arches as well,
  I suspect we just happened to get the 16-byte boundary in some
  cases.

10 years agoForce use of SYS_open on aarch64 as well
Petr Machata [Fri, 31 Jan 2014 00:42:16 +0000 (19:42 -0500)]
Force use of SYS_open on aarch64 as well

- That system call is not implemented on aarch64, but we don't
  care, we are only calling it to see if the parameters get decoded
  properly.  So call using the "syscall" wrapper, and hard-code
  SYS_open value on aarch64, where glibc doesn't define it.

10 years agoRewrite system_calls.exp
Petr Machata [Fri, 31 Jan 2014 00:37:26 +0000 (19:37 -0500)]
Rewrite system_calls.exp

- Port this to new style test case

- Be more clever about what syscalls were invoked from main,
  as opposed to the multitude of calls that the dynamic linker
  typically makes

- Allow some basic calls to come in XXXat variants (e.g. openat
  instead of open), such is the case on aarch64.

10 years agoAdd some missing system calls to syscalls.conf
Petr Machata [Fri, 31 Jan 2014 00:35:56 +0000 (19:35 -0500)]
Add some missing system calls to syscalls.conf

10 years agoImprove HFA-related test cases
Petr Machata [Wed, 5 Feb 2014 01:03:14 +0000 (02:03 +0100)]
Improve HFA-related test cases

- Moved a bunch of preexisting HFA tests to a separate test case (and
  converted them to new style in the process).  Added another bunch of
  HFA tests.

10 years agoManpage and --help clarifications
Petr Machata [Tue, 14 Jan 2014 15:01:35 +0000 (16:01 +0100)]
Manpage and --help clarifications

10 years agoDon't crash untraced calls via PLT in prelinked PPC64 binaries
Petr Machata [Fri, 10 Jan 2014 19:06:51 +0000 (20:06 +0100)]
Don't crash untraced calls via PLT in prelinked PPC64 binaries

In prelinked binaries, ltrace has to unprelinks PLT slots in order to
catch calls done through PLT.  This makes the calls done through these
slots invalid, because the special first PLT slot is not initialized,
and dynamic linker SIGSEGVs because of this.  Ltrace relies on
arranging breakpoints such that the dynamic linker is not actually
entered, and moves PC around itself to simulate the effects of a call
through PLT.

Originally, arch_elf_add_plt_entry was called only for symbols that
were actually traced.  Later this was changed and it's now called for
all PLT entries, and the resulting candidate list is filtered
afterwards.  This gives backends a chance to rename the symbol, as is
useful with IRELATIVE PLT calls, where symbol name may not be
available at all.  But the PPC backend was never updated to reflect
this, and unresolved all symbols for which arch_elf_add_plt_entry was
called, thus rendering _all_ PLT slots invalid, even those that
weren't later procted by breakpoints.  Thus calls done through any
untraced slots failed.

This patch fixes this problem by deferring the unprelinking of PLT
slots into the on_install hook of breakpoints.

10 years agoAdd a new per-breakpoint callback on_install
Petr Machata [Fri, 10 Jan 2014 19:05:15 +0000 (20:05 +0100)]
Add a new per-breakpoint callback on_install

10 years agoDrop unused function enable_all_breakpoints
Petr Machata [Fri, 10 Jan 2014 19:02:58 +0000 (20:02 +0100)]
Drop unused function enable_all_breakpoints

10 years agoType umovebytes properly
Petr Machata [Fri, 10 Jan 2014 19:02:12 +0000 (20:02 +0100)]
Type umovebytes properly

10 years agoInitialize libsym early in trace.c to help the compiler.
Mark Wielaard [Thu, 9 Jan 2014 21:56:35 +0000 (22:56 +0100)]
Initialize libsym early in trace.c to help the compiler.

GCC 4.4.7 isn't smart enough to realize own_libsym will always be zero
when it sees the goto done which might jump over the initialization of
libsym. And so will produce a warning like:

cc1: warnings being treated as errors
trace.c: In function ‘ifunc_ret_hit’:
trace.c:1433: error: ‘libsym’ may be used uninitialized in this function

10 years agoAdd support for using elfutils as unwinder.
Mark Wielaard [Tue, 7 Jan 2014 20:00:44 +0000 (21:00 +0100)]
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.

10 years agoType proc_each_breakpoint properly
Petr Machata [Thu, 9 Jan 2014 22:50:07 +0000 (23:50 +0100)]
Type proc_each_breakpoint properly

10 years agoFix a problem in tracing across fork on PPC64
Petr Machata [Thu, 9 Jan 2014 22:41:50 +0000 (23:41 +0100)]
Fix a problem in tracing across fork on PPC64

In order to avoid single-stepping through large portions of the
dynamic linker, ltrace remembers at which address the instruction that
resolved a PLT slot is.  It then puts a breakpoint to this address so
that it can fast-forward to that address next time it needs to catch a
PLT slot being resolved.

When a process is cloned, the pointer to this breakpoint is simply
copied over to the new process, instead of being looked up in the new
process structures.  This patches fixes this.

10 years agominor fixes in manpages
Juan Cespedes [Thu, 9 Jan 2014 11:18:46 +0000 (12:18 +0100)]
minor fixes in manpages

10 years agoNits
Petr Machata [Tue, 7 Jan 2014 10:57:36 +0000 (11:57 +0100)]
Nits

- Fix some coding style issues in output.c
- Add a couple items to TODO

10 years agoFix infinite loop in stack unwind
Luca Clementi [Tue, 7 Jan 2014 08:00:59 +0000 (00:00 -0800)]
Fix infinite loop in stack unwind

This bug was introduced in af452c6

Reported-by: Petr Machata <pmachata@redhat.com>
10 years agoMinor fixes in manpages
Juan Cespedes [Sun, 5 Jan 2014 16:24:50 +0000 (17:24 +0100)]
Minor fixes in manpages

10 years agocheck return value of unw_get_reg and unw_get_proc_name
Luca Clementi [Sat, 4 Jan 2014 06:05:03 +0000 (22:05 -0800)]
check return value of unw_get_reg and unw_get_proc_name

Before printng the current procedure name and IP verify their validity

10 years agoDrop debian/ directory
Juan Cespedes [Mon, 30 Dec 2013 16:01:12 +0000 (17:01 +0100)]
Drop debian/ directory

Every distribution should create its own specific files

10 years agoSupport IRELATIVE relocations on s390
Petr Machata [Wed, 27 Nov 2013 13:26:13 +0000 (14:26 +0100)]
Support IRELATIVE relocations on s390

10 years agoOn s390{,x}, r2 is scrambled after syscall entry
Petr Machata [Tue, 26 Nov 2013 23:42:51 +0000 (00:42 +0100)]
On s390{,x}, r2 is scrambled after syscall entry

This was caught by system_call_params.exp test case:

   exe->mount("source", "target", "filesystemtype", 0, nil <unfinished ...>
   mount@SYS("", "target", "filesystemtype", 0, nil)                 = -2
   <... mount resumed>                                               = -1

Note how the first parameter disappears--r2 now holds syscall number
(21 in this case), and the original value is stored in orig_gpr2 in
save area.

10 years agoOn x86{,_64}, PLT entries may not be ordered by their relocation
Petr Machata [Fri, 22 Nov 2013 17:26:24 +0000 (18:26 +0100)]
On x86{,_64}, PLT entries may not be ordered by their relocation

- In general they are.  But IRELATIVE relocations are sorted to come
  last, and PLT entries are not sorted accordingly.

10 years agoConsider exec and exit events an end of outstanding calls
Petr Machata [Thu, 21 Nov 2013 19:43:51 +0000 (20:43 +0100)]
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.

10 years agoUpdate NEWS
Petr Machata [Thu, 14 Nov 2013 21:53:51 +0000 (22:53 +0100)]
Update NEWS

10 years agoAdd a test case for wide character functions
Petr Machata [Tue, 12 Nov 2013 23:11:24 +0000 (00:11 +0100)]
Add a test case for wide character functions

10 years agoUpdate NEWS
Petr Machata [Mon, 11 Nov 2013 23:14:23 +0000 (00:14 +0100)]
Update NEWS

10 years agoIn read_config_file.c, clone type info when unsharing it
Petr Machata [Mon, 11 Nov 2013 18:33:56 +0000 (19:33 +0100)]
In read_config_file.c, clone type info when unsharing it

10 years agoCleanups
Petr Machata [Mon, 11 Nov 2013 18:33:37 +0000 (19:33 +0100)]
Cleanups

10 years agoAdd many wide cheracter functions to libc.so.conf
Petr Machata [Mon, 11 Nov 2013 16:06:59 +0000 (17:06 +0100)]
Add many wide cheracter functions to libc.so.conf

10 years agoUse wcwidth to exactly determine how much space a character took
Petr Machata [Mon, 11 Nov 2013 15:08:42 +0000 (16:08 +0100)]
Use wcwidth to exactly determine how much space a character took

- So far we assumed it's one character worth of screen real-estaty per
  character written, but combining and wide characters can change
  this.

10 years agoAdd fdopen prototype to libc.so.conf
Petr Machata [Mon, 11 Nov 2013 01:29:40 +0000 (02:29 +0100)]
Add fdopen prototype to libc.so.conf

10 years agoWhen a typedef X_t is requested, don't match lens named X instead
Petr Machata [Mon, 11 Nov 2013 01:28:01 +0000 (02:28 +0100)]
When a typedef X_t is requested, don't match lens named X instead

10 years agoAdd error message if ltelf_init fails to open ELF
Petr Machata [Mon, 11 Nov 2013 01:27:33 +0000 (02:27 +0100)]
Add error message if ltelf_init fails to open ELF

10 years agoIn ltrace_init, don't call ltelf_destroy if ltelf_init fails
Petr Machata [Mon, 11 Nov 2013 01:27:08 +0000 (02:27 +0100)]
In ltrace_init, don't call ltelf_destroy if ltelf_init fails

10 years agoSupport wide character strings
Petr Machata [Mon, 11 Nov 2013 01:24:42 +0000 (02:24 +0100)]
Support wide character strings

- "string" lens and "format" pack were extended such that using an
  integer as underlying array type denotes a wide character string.

- several prototypes from wchar.h were added to libc.so.conf.

- ltrace.conf.5 was updated

10 years agoAdd a TODO item
Petr Machata [Wed, 6 Nov 2013 17:35:56 +0000 (18:35 +0100)]
Add a TODO item

10 years agoSupport pre-8.5 TCL's by providing our own lreverse in ltrace.exp
Petr Machata [Wed, 6 Nov 2013 11:10:18 +0000 (12:10 +0100)]
Support pre-8.5 TCL's by providing our own lreverse in ltrace.exp

10 years agoReplace a chain of stpcpy's with a sprintf
Petr Machata [Wed, 6 Nov 2013 10:59:59 +0000 (11:59 +0100)]
Replace a chain of stpcpy's with a sprintf

- That's clearer and doesn't require _POSIX_SOURCE defines (that are
  missing anyway)