Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
Those are PLT symbols, and their prototype is likely defined in a
configuration file for library other than where the symbol is defined.
If this "home" library doesn't have the prototype, consult all
libraries mapped in the process image.
|
|
Ltrace uses iterators extensively. Many callbacks end with some sort
of if/else switch that returns either CBS_STOP or CBS_CONT. These
macros capture that logic.
|
|
|
|
We have one global cache, initialized in init_global_config.
output.c was adjusted to load per-library config files on
demand from that cache.
|
|
This is enough for handling -x symbols. For handling -e however, we will
need a per-process library that's incrementally built according to what's
mapped in.
|
|
This doesn't yet handle autoloading of /etc/ltrace.conf, but the algorithms
are all in.
|
|
|
|
lstat should see through them, but bash process substitution produces
files that report themselves as symlinks even to lstat.
|
|
|
|
Also allow parsing colon-separated lists into opt_F. This will be useful
for -F as well as for parsing some environment variables.
This removes bits related to default directories to look into. This will
eventually be moved to os_get_config_dirs, currently it's simply disabled.
The code in libltrace.c is currently incompatible with opt_F being a vector,
so it's disabled as well. Revamp of the whole configury shebang underway.
|
|
|
|
|
|
Also, drop libelf_CFLAGS from AM_CPPFLAGS. That's an obvious mismatch,
and all other libraries are configured in configure.ac.
|
|
|
|
There's no need to go through the parser. It may have been simpler when it
was written, but these days we need to create a fake library, allocate on
heap, duplicate strings... it's much easier to just initialize it by hand.
|
|
Now that prototype module stores prototypes and named types by value,
avoid unnecessary malloc's in read_config_file.c
|
|
|
|
|
|
|
|
This still uses only a single global prototype library, but most of
custom config-reader-only code has been eliminated in favor of
prototype module.
|
|
|
|
|
|
|
|
|
|
This is to be used, eventually, for keeping one prototype library per DSO.
Right now we only have one prototype library, like before: g_prototypes.
Typedef submodule is not yet used, only prototypes are stored in the
protolib as of now.
The change in Makefile.am is actually an inclusion of prototype.{c,h}
followed by a rewrap of name lists.
|
|
|
|
|
|
|
|
|
|
|
|
Adjust users accordingly.
|
|
This is for symmetry with init_global_config.
|
|
|
|
|
|
Rationale: more fitting name and coding style
|
|
- In many places, DICT_FIND was awkward to use, as it required the use
of pointers even in cases that the dictionary already stored
pointers. For those cases, add DICT_FIND_VAL.
- Rename the original DICT_FIND to DICT_FIND_REF to make the
disctinction clear. That is useful if the dictionary holds actual
structures.
|
|
|
|
|
|
|
|
|
|
The argument to memmove needs to be number of bytes, not number of slots.
|
|
vect_popback and VECT_POPBACK are now defined in terms of vect_erase and
VECT_ERASE, respectively.
|
|
... because it's bound to come up often.
|
|
|
|
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.
|
|
inode numbers in modern filesystems often exceed the 32-bit address
space. If that happens, calling 32-bit stat (as would be the case on
a 32-bit machine when largefile support is not enabled) fails with
EOVERFLOW despite us not needing those values at all.
AC_SYS_LARGEFILE enables largefile support if possible. This defines
_FILE_OFFSET_BITS in config.h, so that file needs to be included in
files that use stat.
|
|
Simply continuing on SPARC is probably broken. The breakpoint isn't
disabled at that point, and continuing just hits it again.
That __ia64___ in ifdef is never defined even on an IA64 machine.
It's a typo, note the three underscores.
|