aboutsummaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
authorPetr Machata <pmachata@redhat.com>2013-10-24 10:35:54 +0200
committerPetr Machata <pmachata@redhat.com>2013-10-24 10:35:54 +0200
commit8eacf65a0b840630814e151ebf9c111f768b8571 (patch)
tree6324aff1df3949c567bebfd9aa0f2b5c77b5609d /TODO
parent98a7dce70986f2394d22ee5dd8ed355ceb2104b4 (diff)
downloadltrace-8eacf65a0b840630814e151ebf9c111f768b8571.tar.gz
Update TODO
Diffstat (limited to 'TODO')
-rw-r--r--TODO22
1 files changed, 21 insertions, 1 deletions
diff --git a/TODO b/TODO
index 34e1a73..a33b918 100644
--- a/TODO
+++ b/TODO
@@ -59,9 +59,29 @@
Perhaps we should hook to something after all.
+*** system call error returns
+
+ This is closely related to above. Take the following syscall
+ prototype:
+
+ | long read(int,+string0,ulong);
+
+ string0 means the same as string(array(char, zero(retval))*). But
+ if read returns a negative value, that signifies errno. But zero
+ takes this at face value and is suspicious:
+
+ | read@SYS(3 <no return ...>
+ | error: maximum array length seems negative
+ | , "\n\003\224\003\n", 4096) = -11
+
+ Ideally we would do what strace does, e.g.:
+
+ | read@SYS(3, 0x12345678, 4096) = -EAGAIN
+
*** errno tracking
Some calls result in setting errno. Somehow mark those, and on
- failure, show errno.
+ failure, show errno. System calls return errno as a negative
+ value (see the previous point).
*** second conversions?
This definitely calls for some general scripting. The goal is to