aboutsummaryrefslogtreecommitdiff
path: root/TODO
blob: 40481850e06401bee7d8735d8b2fab974e353397 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
* BFD:
  + New executable formats
  + Read list of libraries needed
  + Read list of undefined symbols in executables
  + Read list of exported symbols in libraries
  + Read debugging info from executables/libraries
* Automatically update list of syscalls?
* Improve documentation
* Improve -e/-x options (regexp?)
* Improve -l option
* Improve C++ name demangling
* Display different argument types
* Update /etc/ltrace.conf
* More architectures, cleaner way to port
* More operating systems (solaris?)
* Option -I (inter-library calls)
* Modify ARGTYPE_STRING[0-5] types so that they not stop displaying chars when '\0' is encountered
* Get rid of EVENT_ARCH_SYSCALL and EVENT_ARCH_SYSRET
* EVENT_FORK, EVENT_CLONE, EVENT_EXEC instead of fork_p() and exec_p()
* If EVENT_FORK is received:
  + Add the new process to the list, with a state of "future child of XXX"
* If EVENT_CLONE is received:
  + Add the new process to the list, with a state of "future clone of XXX"
* If EVENT_EXEC is received:
  + Clean structs with breakpoints, open new created program
* If a signal is received from an an unknown process, add it to the list,
  with a state of "new process"
* 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
* To be able to work with processes sharing memory, we must:
  + ptrace() every single thread
  + place breakpoints only in places where the process control can continue
    without having to remove it
* Get rid of GNU's autoconf stuff
* List source dependencies in Makefile