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''
|