blob: 3b7a387a4f1deea6eac8d6c0f35a992eafe010e0 [file] [log] [blame]
Juan Cespedes1c2be911997-06-09 01:12:01 +02001#include <stdio.h>
Juan Cespedes23658aa1997-08-27 22:27:36 +02002#include <stdlib.h>
Juan Cespedes1c2be911997-06-09 01:12:01 +02003#include <unistd.h>
Juan Cespedes23658aa1997-08-27 22:27:36 +02004#include <string.h>
Juan Cespedes5e01f651998-03-08 22:31:44 +01005#include <errno.h>
6#include <sys/param.h>
Juan Cespedes1c2be911997-06-09 01:12:01 +02007
Juan Cespedes5e01f651998-03-08 22:31:44 +01008#include "ltrace.h"
Juan Cespedes96935a91997-08-09 23:45:39 +02009#include "elf.h"
Juan Cespedes3268a161997-08-25 16:45:22 +020010#include "output.h"
Juan Cespedes5e01f651998-03-08 22:31:44 +010011#include "config_file.h"
12#include "options.h"
Juan Cespedes96935a91997-08-09 23:45:39 +020013
Juan Cespedes1fe93d51998-03-13 00:29:21 +010014char * command = NULL;
Juan Cespedes5e01f651998-03-08 22:31:44 +010015struct process * list_of_processes = NULL;
Juan Cespedes24c82531997-06-25 00:02:58 +020016
Juan Cespedes1c2be911997-06-09 01:12:01 +020017int main(int argc, char **argv)
18{
Juan Cespedes5e01f651998-03-08 22:31:44 +010019 argv = process_options(argc, argv);
Juan Cespedes5e01f651998-03-08 22:31:44 +010020 read_config_file("/etc/ltrace.conf");
21 if (getenv("HOME")) {
22 char path[PATH_MAX];
23 sprintf(path, getenv("HOME")); /* FIXME: buffer overrun */
24 strcat(path, "/.ltrace.conf");
25 read_config_file(path);
Juan Cespedes23658aa1997-08-27 22:27:36 +020026 }
Juan Cespedes1fe93d51998-03-13 00:29:21 +010027 while (opt_p) {
Juan Cespedes273ea6d1998-03-14 23:02:40 +010028 open_pid(opt_p->pid, 1);
Juan Cespedes1fe93d51998-03-13 00:29:21 +010029 opt_p = opt_p->next;
30 }
Juan Cespedes1fe93d51998-03-13 00:29:21 +010031 if (command) {
32 execute_program(open_program(command), argv);
33 }
Juan Cespedes1c2be911997-06-09 01:12:01 +020034 while(1) {
Juan Cespedes5e01f651998-03-08 22:31:44 +010035 process_event(wait_for_something());
36 }
37}
38