aboutsummaryrefslogtreecommitdiff
path: root/TODO
blob: 13f40390725f443208af5757ce5af8cf8d0b4c0f (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
* {enable,disable}_all_breakpoints should be process-dependent

* All wait4's should be moved to chld_handler():
  + A process may stop because:
    - It execve()'d (needs breakpoints to be added)
    - It received a signal                          (DONE)
    - It breakpointed at a library call             (DONE)
    - It breakpointed at a library return
    - It breakpointed at a syscall
    - It breakpointed at a syscall return

* ``struct_process'' should also have:
  + All the symbols it has breakpointed, and, for each of them:
    - its addr
    - its return addr, if any
    - whether the return addr is breakpointed (ie, if the symbol is ``active'')
    - the original value in the addr, and in the return addr, if appropiate
    -
  + The state of the process:
    - uninitialized
    - running
    - within a given syscall

* I should parse a config file (/etc/ltrace.conf & ~/.ltracerc) to
  handle different arguments to the library calls

* main() should find the program in the PATH.

* ltrace should accept `-p' option. (hey, it's not as difficult as it
  seems)

* return values should be logged.  That implies:
  + Breakpointing each return value
  + Disabling breakpoints and displaying ``???'' as return value when
    a new function is called

* ltrace should accept '-s' option to trace syscalls, too.

* All architecture dependent stuff should be moved to ``arch.h''