1d3a8d6565ff40fd99533f50a085ace806a9300eeGreg Clayton//===-- Xcode.h -------------------------------------------------*- C++ -*-===//
2f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata//
3d3a8d6565ff40fd99533f50a085ace806a9300eeGreg Clayton//                     The LLVM Compiler Infrastructure
4f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata//
5d3a8d6565ff40fd99533f50a085ace806a9300eeGreg Clayton// This file is distributed under the University of Illinois Open Source
6d3a8d6565ff40fd99533f50a085ace806a9300eeGreg Clayton// License. See LICENSE.TXT for details.
7f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata//
8d3a8d6565ff40fd99533f50a085ace806a9300eeGreg Clayton//===----------------------------------------------------------------------===//
9f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata
10f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata#ifndef __PerfTestDriver__Xcode__
11f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata#define __PerfTestDriver__Xcode__
12f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata
13f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata#include "lldb/API/SBDefines.h"
14f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata#include "lldb/API/SBValue.h"
15f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata#include "lldb/API/SBTarget.h"
16f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata#include "lldb/API/SBModule.h"
17f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata#include "lldb/API/SBProcess.h"
18f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata#include "lldb/API/SBLineEntry.h"
19f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata#include "lldb/API/SBThread.h"
20f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata#include "lldb/API/SBDebugger.h"
21f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata#include "lldb/API/SBCommandInterpreter.h"
22f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata#include "lldb/API/SBCommandReturnObject.h"
23f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata#include "lldb/API/SBBreakpoint.h"
24f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata
25f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granatausing namespace lldb;
26f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata
27af222500aa2ce2b18149277e561cdf75f2115df2Greg Claytonnamespace lldb_perf
28f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata{
29f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granataclass Xcode
30f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata{
31f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granatapublic:
32f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata	static void
33f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata	FetchVariable (SBValue value, uint32_t expand = 0, bool verbose = false);
34f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata
35f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata	static void
36f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata	FetchModules (SBTarget target, bool verbose = false);
37f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata
38f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata	static void
39f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata	FetchVariables (SBFrame frame, uint32_t expand = 0, bool verbose = false);
40f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata
41f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata	static void
42f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata	FetchFrames (SBProcess process, bool variables = false, bool verbose = false);
43f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata
44f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata	static void
45f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata	RunExpression (SBFrame frame, const char* expression, bool po = false, bool verbose = false);
46f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata
47f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata	static void
48f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata	Next (SBThread thread);
49f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata
50f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata	static void
51f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata	Continue (SBProcess process);
52f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata
53f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata	static void
54f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata	RunCommand (SBDebugger debugger, const char* cmd, bool verbose = false);
55f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata
56f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata	static SBThread
57f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata	GetThreadWithStopReason (SBProcess process, StopReason reason);
58f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata
59f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata    static SBBreakpoint
60f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata    CreateFileLineBreakpoint (SBTarget target, const char* file, uint32_t line);
61f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata};
62af222500aa2ce2b18149277e561cdf75f2115df2Greg Clayton}
63f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata
64f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata#endif /* defined(__PerfTestDriver__Xcode__) */
65