blob: 29c5861f4970a1ecda33f889d3eb30cbd7dc1918 (
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
|
* {enable,disable}_all_breakpoints should be process-dependent
* All wait4's should be wait_for_child():
+ A process may stop because:
- It execve()'d (needs breakpoints to be added) (DONE)
- 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
- It breakpointed after a SINGLESTEP
* ``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
- the original value in the addr, if appropiate
+ Whether a return from a libcall is pending, and if so:
- its return addr
- the original value in the return addr
* 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''
|