blob: d439a0420e1fb569cbc49c4de977e80e72d404b5 [file] [log] [blame]
Tamas Berghammerc2c3d712015-02-18 15:39:41 +00001//===-- lldb-server.cpp -----------------------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
Robert Flackab3269d2015-03-02 15:14:50 +000010#include "lldb/lldb-private.h"
11
Tamas Berghammerc2c3d712015-02-18 15:39:41 +000012#include <stdio.h>
13#include <stdlib.h>
14
Chaoren Line4bb0b32015-02-23 21:48:42 +000015static void
Tamas Berghammerc2c3d712015-02-18 15:39:41 +000016display_usage (const char *progname)
17{
18 fprintf(stderr, "Usage:\n"
19 " %s g[dbserver] [options]\n"
20 " %s p[latform] [options]\n"
Chaoren Line4bb0b32015-02-23 21:48:42 +000021 "Invoke subcommand for additional help\n", progname, progname);
Tamas Berghammerc2c3d712015-02-18 15:39:41 +000022 exit(0);
23}
24
25// Forward declarations of subcommand main methods.
26int main_gdbserver (int argc, char *argv[]);
27int main_platform (int argc, char *argv[]);
28
Robert Flackab3269d2015-03-02 15:14:50 +000029static void
30initialize ()
31{
32 lldb_private::InitializeForLLGS();
33}
34
35static void
36terminate ()
37{
38 lldb_private::WillTerminate();
39 lldb_private::TerminateLLGS();
40}
41
Tamas Berghammerc2c3d712015-02-18 15:39:41 +000042//----------------------------------------------------------------------
43// main
44//----------------------------------------------------------------------
45int
46main (int argc, char *argv[])
47{
48 int option_error = 0;
49 const char *progname = argv[0];
50 if (argc < 2)
51 {
52 display_usage(progname);
53 exit(option_error);
54 }
55 else if (argv[1][0] == 'g')
56 {
Robert Flackab3269d2015-03-02 15:14:50 +000057 initialize();
Tamas Berghammerc2c3d712015-02-18 15:39:41 +000058 main_gdbserver(argc, argv);
Robert Flackab3269d2015-03-02 15:14:50 +000059 terminate();
Tamas Berghammerc2c3d712015-02-18 15:39:41 +000060 }
61 else if (argv[1][0] == 'p')
62 {
Robert Flackab3269d2015-03-02 15:14:50 +000063 initialize();
Tamas Berghammerc2c3d712015-02-18 15:39:41 +000064 main_platform(argc, argv);
Robert Flackab3269d2015-03-02 15:14:50 +000065 terminate();
Tamas Berghammerc2c3d712015-02-18 15:39:41 +000066 }
67 else {
68 display_usage(progname);
69 exit(option_error);
70 }
71}