blob: 54019f6b33c1fdf1ebaa1f37c9c8daf3a3e05dbb (
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
|
* {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:
+ The state of the process:
- uninitialized (DONE)
- running
- within a given library call
- within a given syscall (DONE)
+ 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
* I should parse a config file (/etc/ltrace.conf & ~/.ltracerc) to
handle different arguments to the library calls
* 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
* All architecture dependent stuff should be moved to ``arch.h''
|