[Ltrace-devel] Config files

Dima Kogan lists at dima.secretsauce.net
Sat Jul 26 09:58:06 UTC 2014


Hi all.

In putting together the test suite, I hit a few issues with conf files.
Those are all described together in this email.

When running the test suite, I would think we want to be testing the
build of ltrace that appears in the checked-out source tree, and that it
should be independent of the user's local configuration or the overall
system. Thus I would expect

- ~/.ltrace to not be read
- /etc/ltrace to not be read either
- etc/ in the source tree to be read

currently I'm observing that

- ~/.ltrace is read
- /etc/ltrace is not read
- etc/ in the source tree is not read

This sounds wrong. Complaints against patching it in this way?



The DWARF parser interprets every structure as deeply as possible. This
is often undesirable. For instance when tracing something like ftell(),
ltrace wants to print all components of its FILE* argument. On my libc,
this eventually contains a void value, and ltrace does an assert(0)
trying to print it. We want to ship something like

 typedef FILE = addr;

in our config files. We DO have this in libc.so.conf, but this has 2
problems:

1. this file isn't read by the test suite, as mentioned above

2. On Debian, the DWARF data has ftell(_IO_FILE*), not ftell(FILE*). It
also has typedef FILE = _IO_FILE. Thus the typedef in the conf file has
no effect. We can add to the conf file

 typedef _IO_FILE = FILE

but this is an implementation detail of glibc, so this is unideal. We
can also do something complicated like realizing that FILE is defined in
the conf file, and then treat the typedef in the DWARF backwards.
Suggestions?

Thanks

dima



More information about the Ltrace-devel mailing list