summaryrefslogtreecommitdiffstats
path: root/include/llvm/Debugger/InferiorProcess.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/Debugger/InferiorProcess.h')
-rw-r--r--include/llvm/Debugger/InferiorProcess.h137
1 files changed, 0 insertions, 137 deletions
diff --git a/include/llvm/Debugger/InferiorProcess.h b/include/llvm/Debugger/InferiorProcess.h
deleted file mode 100644
index 71d138b..0000000
--- a/include/llvm/Debugger/InferiorProcess.h
+++ /dev/null
@@ -1,137 +0,0 @@
-//===- InferiorProcess.h - Represent the program being debugged -*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the InferiorProcess class, which is used to represent,
-// inspect, and manipulate a process under the control of the LLVM debugger.
-//
-// This is an abstract class which should allow various different types of
-// implementations. Initially we implement a unix specific debugger backend
-// that does not require code generator support, but we could eventually use
-// code generator support with ptrace, support windows based targets, supported
-// remote targets, etc.
-//
-// If the inferior process unexpectedly dies, an attempt to communicate with it
-// will cause an InferiorProcessDead exception to be thrown, indicating the exit
-// code of the process. When this occurs, no methods on the InferiorProcess
-// class should be called except for the destructor.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_DEBUGGER_INFERIORPROCESS_H
-#define LLVM_DEBUGGER_INFERIORPROCESS_H
-
-#include <string>
-#include <vector>
-
-namespace llvm {
- class Module;
- class GlobalVariable;
-
- /// InferiorProcessDead exception - This class is thrown by methods that
- /// communicate with the interior process if the process unexpectedly exits or
- /// dies. The instance variable indicates what the exit code of the process
- /// was, or -1 if unknown.
- class InferiorProcessDead {
- int ExitCode;
- public:
- InferiorProcessDead(int EC) : ExitCode(EC) {}
- int getExitCode() const { return ExitCode; }
- };
-
- /// InferiorProcess class - This class represents the process being debugged
- /// by the debugger. Objects of this class should not be stack allocated,
- /// because the destructor can throw exceptions.
- ///
- class InferiorProcess {
- Module *M;
- protected:
- InferiorProcess(Module *m) : M(m) {}
- public:
- /// create - Create an inferior process of the specified module, and
- /// stop it at the first opportunity. If there is a problem starting the
- /// program (for example, it has no main), throw an exception.
- static InferiorProcess *create(Module *M,
- const std::vector<std::string> &Arguments,
- const char * const *envp);
-
- // InferiorProcess destructor - Kill the current process. If something
- // terrible happens, we throw an exception from the destructor.
- virtual ~InferiorProcess() {}
-
- //===------------------------------------------------------------------===//
- // Status methods - These methods return information about the currently
- // stopped process.
- //
-
- /// getStatus - Return a status message that is specific to the current type
- /// of inferior process that is created. This can return things like the
- /// PID of the inferior or other potentially interesting things.
- virtual std::string getStatus() const {
- return "";
- }
-
- //===------------------------------------------------------------------===//
- // Methods for inspecting the call stack.
- //
-
- /// getPreviousFrame - Given the descriptor for the current stack frame,
- /// return the descriptor for the caller frame. This returns null when it
- /// runs out of frames. If Frame is null, the initial frame should be
- /// returned.
- virtual void *getPreviousFrame(void *Frame) const = 0;
-
- /// getSubprogramDesc - Return the subprogram descriptor for the current
- /// stack frame.
- virtual const GlobalVariable *getSubprogramDesc(void *Frame) const = 0;
-
- /// getFrameLocation - This method returns the source location where each
- /// stack frame is stopped.
- virtual void getFrameLocation(void *Frame, unsigned &LineNo,
- unsigned &ColNo,
- const GlobalVariable *&SourceDesc) const = 0;
-
- //===------------------------------------------------------------------===//
- // Methods for manipulating breakpoints.
- //
-
- /// addBreakpoint - This method adds a breakpoint at the specified line,
- /// column, and source file, and returns a unique identifier for it.
- ///
- /// It is up to the debugger to determine whether or not there is actually a
- /// stop-point that corresponds with the specified location.
- virtual unsigned addBreakpoint(unsigned LineNo, unsigned ColNo,
- const GlobalVariable *SourceDesc) = 0;
-
- /// removeBreakpoint - This deletes the breakpoint with the specified ID
- /// number.
- virtual void removeBreakpoint(unsigned ID) = 0;
-
-
- //===------------------------------------------------------------------===//
- // Execution methods - These methods cause the program to continue execution
- // by some amount. If the program successfully stops, this returns.
- // Otherwise, if the program unexpectedly terminates, an InferiorProcessDead
- // exception is thrown.
- //
-
- /// stepProgram - Implement the 'step' command, continuing execution until
- /// the next possible stop point.
- virtual void stepProgram() = 0;
-
- /// finishProgram - Implement the 'finish' command, continuing execution
- /// until the current function returns.
- virtual void finishProgram(void *Frame) = 0;
-
- /// contProgram - Implement the 'cont' command, continuing execution until
- /// a breakpoint is encountered.
- virtual void contProgram() = 0;
- };
-} // end namespace llvm
-
-#endif
OpenPOWER on IntegriCloud