blob: 568f61d8a2ac3a5f30e08840c6b0485692fc94f9 [file] [log] [blame]
Juan Cespedes1afec691997-08-23 21:31:46 +02001#ifndef _LTRACE_PROCESS_H
2#define _LTRACE_PROCESS_H
3
Juan Cespedesc40e64a1997-10-26 20:34:00 +01004#include "i386.h"
5
Juan Cespedes1afec691997-08-23 21:31:46 +02006/* not ready yet */
7#if 0
8struct symbols_from_filename {
9 char * filename;
10 struct library_symbol * list_of_symbols;
11}
12
13struct library_symbol {
14 char * name;
15 unsigned long addr;
16 unsigned long return_addr;
17 unsigned char old_value[BREAKPOINT_LENGTH];
18 struct library_symbol * next;
19};
Juan Cespedes1afec691997-08-23 21:31:46 +020020#endif
21
Juan Cespedesef04ba41997-08-22 21:55:45 +020022struct process {
Juan Cespedes3268a161997-08-25 16:45:22 +020023 char * filename; /* from execve() (TODO) */
Juan Cespedesef04ba41997-08-22 21:55:45 +020024 int pid;
Juan Cespedes3268a161997-08-25 16:45:22 +020025 int breakpoints_enabled;
Juan Cespedesc40e64a1997-10-26 20:34:00 +010026 int within_function;
27 struct breakpoint return_value; /* if within a function */
28 struct proc_arch proc_arch;
Juan Cespedesef04ba41997-08-22 21:55:45 +020029 struct process * next;
30};
31
32extern struct process * list_of_processes;
33
Juan Cespedesc40e64a1997-10-26 20:34:00 +010034extern unsigned int instruction_pointer;
Juan Cespedes5e4455b1997-08-24 01:48:26 +020035
Juan Cespedes1afec691997-08-23 21:31:46 +020036int execute_process(const char * file, char * const argv[]);
Juan Cespedes3268a161997-08-25 16:45:22 +020037void wait_for_child(void);
Juan Cespedes1afec691997-08-23 21:31:46 +020038
39#endif