diff options
author | Petr Machata <pmachata@redhat.com> | 2012-10-26 02:08:08 +0200 |
---|---|---|
committer | Petr Machata <pmachata@redhat.com> | 2012-10-26 02:08:08 +0200 |
commit | 9daea45bcf7ea43798c2204cc5341cfa27f65468 (patch) | |
tree | 671857d9c014d7a4f762f84a41b7e6478cfbbf72 /TODO | |
parent | e9aa41afb05dd58908c389556c8bf9c984002a36 (diff) | |
download | ltrace-9daea45bcf7ea43798c2204cc5341cfa27f65468.tar.gz |
Describe "right" argumens in ltrace.conf.5. Add a related TODO item
Diffstat (limited to 'TODO')
-rw-r--r-- | TODO | 29 |
1 files changed, 29 insertions, 0 deletions
@@ -25,5 +25,34 @@ ** Config file syntax *** typedef should be able to assign a lens to a name *** format should take arguments like string does +** More fine-tuned control of right arguments + Combination of named arguments and some extensions could take care + of that: + + | void func(X=hide(int*), long*, +pack(X)); | + + This would show long* as input argument (i.e. the function could + mangle it), and later show the pre-fetched X. The "pack" syntax is + utterly undeveloped as of now. The general idea is to produce + arguments that expand to some mix of types and values. But maybe + all we need is something like + + | void func(out int*, long*); | + + ltrace would know that out/inout/in arguments are given in the + right order, but left pass should display in and inout arguments + only, and right pass then out and inout. + would be + backward-compatible syntactic sugar, expanded like so: + + | void func(int*, int*, +long*, long*); | + | void func(in int*, in int*, out long*, out long*); | + + But sometimes we may want to see a different type on the way in and + on the way out. E.g. in asprintf, what's interesting on the way in + is the address, but on the way out we want to see buffer contents. + Does something like the following make sense? + + | void func(X=void*, long*, out string(X)); | + * BUGS ** After a clone(), syscalls may be seen as sysrets in s390 (see trace.c:syscall_p()) |