aboutsummaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
authorPetr Machata <pmachata@redhat.com>2012-10-23 18:12:58 +0200
committerPetr Machata <pmachata@redhat.com>2012-10-23 18:12:58 +0200
commit65af2a5fc055852e0dc5851a82bd7cfade6f3448 (patch)
treee6a507a5d11a01fb84f554cecb219a64bdbfcf55 /TODO
parentfc57cfe6068ca7cfd7e26105b904b14bc9eb127e (diff)
downloadltrace-65af2a5fc055852e0dc5851a82bd7cfade6f3448.tar.gz
Convert TODO to org mode
Diffstat (limited to 'TODO')
-rw-r--r--TODO47
1 files changed, 26 insertions, 21 deletions
diff --git a/TODO b/TODO
index 3b9dea0..9856c91 100644
--- a/TODO
+++ b/TODO
@@ -1,21 +1,26 @@
-* BFD:
- + Read debugging info from executables/libraries
-* Automatically update list of syscalls?
-* Improve documentation
-* Display different argument types
-* Update /etc/ltrace.conf
-* More operating systems (solaris?)
-* Get rid of EVENT_ARCH_SYSCALL and EVENT_ARCH_SYSRET
-* Cleaner way to use breakpoints:
- + BP is placed in the PLT
- + When control hits there:
- - write down return address
- - change return address with another one (handled by ltrace)
- - get arguments...
- - change the process' PC to be in the correct place,
- without removing breakpoint
- + When control hits one of our return addresses:
- - get return value...
- - change PC to the right place
-* Create different ltrace processes to trace different children
-* After a clone(), syscalls may be seen as sysrets in s390 (see trace.c:syscall_p())
+-*-org-*-
+* TODO
+** Automatic prototype discovery:
+*** Use debuginfo if available
+ Alternatively, use debuginfo to generate configure file.
+*** Demangled identifiers contain partial prototypes themselves
+** Automatically update list of syscalls?
+** Improve documentation
+*** Describe syntax of config files
+** Update /etc/ltrace.conf
+ In particular, we could use a config directory, where packages
+ would install their ltrace config scripts. The config file could
+ be named after SONAME, and automatically read when corresponding
+ library is mapped.
+** More operating systems (solaris?)
+** Get rid of EVENT_ARCH_SYSCALL and EVENT_ARCH_SYSRET
+** Implement displaced tracing
+ A technique used in GDB (and in uprobes, I believe), whereby the
+ instruction under breakpoint is moved somewhere else, and followed
+ by a jump back to original place. When the breakpoint hits, the IP
+ is moved to the displaced instruction, and the process is
+ continued. We avoid all the fuss with singlestepping and
+ reenablement.
+** Create different ltrace processes to trace different children
+* BUGS
+** After a clone(), syscalls may be seen as sysrets in s390 (see trace.c:syscall_p())