C# 클래스 VSNDK.DebugEngine.AD7Engine

상속: IDebugEngine2, IDebugEngineLaunch2, IDebugProgram3, IDebugEngineProgram2, IDebugSymbolSettings100
파일 보기 프로젝트 열기: blackberry/VSPlugin 1 사용 예제들

공개 프로퍼티들

프로퍼티 타입 설명
_currentThreadIndex int
_updateThreads bool
m_docContext AD7DocumentContext
m_process AD7Process
m_progNode AD7ProgramNode
m_running ManualResetEvent
m_state DE_STATE
m_updatingConditionalBreakpoint ManualResetEvent

보호된 프로퍼티들

프로퍼티 타입 설명
m_breakpointManager BreakpointManager
m_eventDispatcher EventDispatcher

Private Properties

프로퍼티 타입 설명
IDebugEngine2 int
IDebugEngine2 int
IDebugEngine2 int
IDebugEngine2 int
IDebugEngine2 int
IDebugEngine2 int
IDebugEngine2 int
IDebugEngine2 int
IDebugEngine2 int
IDebugEngine2 int
IDebugEngine2 int
IDebugEngineLaunch2 int
IDebugEngineLaunch2 int

공개 메소드들

메소드 설명
AD7Engine ( ) : System

Constructor.

AddThreadsToProgram ( ) : int

Add threads for a program when lauching it and the debugger (IDebugEngineLaunch2.LaunchSuspended).

Attach ( IDebugEventCallback2 pCallback ) : int

Attaches to the program. Not implemented. (http://msdn.microsoft.com/en-us/library/bb161973.aspx)

CanDetach ( ) : int

Determines if a debug engine (DE) can detach from the program. (http://msdn.microsoft.com/en-us/library/bb161967.aspx)

CauseBreak ( ) : int

Requests that the program stop execution the next time one of its threads attempts to run. The debugger calls CauseBreak when the user clicks on the pause button in VS. The debugger should respond by entering breakmode. (http://msdn.microsoft.com/en-us/library/bb145018.aspx)

Continue ( IDebugThread2 pThread ) : int

Continues running this program from a stopped state. Any previous execution state (such as a step) is preserved, and the program starts executing again. (http://msdn.microsoft.com/en-us/library/bb162148.aspx)

Detach ( ) : int

Detaches a debug engine from the program. (http://msdn.microsoft.com/en-us/library/bb146228.aspx)

EnumCodeContexts ( IDebugDocumentPosition2 pDocPos, IEnumDebugCodeContexts2 &ppEnum ) : int

Retrieves a list of the code contexts for a given position in a source file. Not implemented. (http://msdn.microsoft.com/en-us/library/bb145902.aspx)

EnumCodePaths ( string hint, IDebugCodeContext2 start, IDebugStackFrame2 frame, int fSource, IEnumCodePaths2 &pathEnum, IDebugCodeContext2 &safetyContext ) : int

Retrieves a list of the code paths for a given position in a source file. EnumCodePaths is used for the step-into specific feature -- right click on the current statement and decide which function to step into. This is not something that the VSNDK debug engine supports. (http://msdn.microsoft.com/en-us/library/bb162326.aspx)

EnumModules ( IEnumDebugModules2 &ppEnum ) : int

Retrieves a list of the modules that this program has loaded and is executing. (http://msdn.microsoft.com/en-us/library/bb146980.aspx)

EnumThreads ( IEnumDebugThreads2 &ppEnum ) : int

Retrieves a list of the threads that are running in the program. (http://msdn.microsoft.com/en-us/library/bb145110.aspx)

Execute ( ) : int

TODO: Verify if this method is called or not by VS. Continues running this program from a stopped state. Any previous execution state (such as a step) is cleared, and the program starts executing again. (http://msdn.microsoft.com/en-us/library/bb162315.aspx)

ExecuteOnThread ( IDebugThread2 pThread ) : int

Executes the debugger program. The thread is returned to give the debugger information on which thread the user is viewing when executing the program. ExecuteOnThread is called when the SDM wants execution to continue and have stepping state cleared. (http://msdn.microsoft.com/en-us/library/bb145596.aspx)

GetDebugProperty ( IDebugProperty2 &ppProperty ) : int

Gets the program's properties. The VSNDK debug engine does not support this. (http://msdn.microsoft.com/en-us/library/bb161801.aspx)

GetDisassemblyStream ( enum_DISASSEMBLY_STREAM_SCOPE dwScope, IDebugCodeContext2 codeContext, IDebugDisassemblyStream2 &disassemblyStream ) : int

Gets the disassembly stream for this program or a part of this program. The sample engine does not support dissassembly so it returns E_NOTIMPL

GetENCUpdate ( object &update ) : int

This method gets the Edit and Continue (ENC) update for this program. A custom debug engine always returns E_NOTIMPL

GetEngineInfo ( string &engineName, Guid &engineGuid ) : int

Gets the name and GUID of the debug engine running this program. (http://msdn.microsoft.com/en-us/library/bb145854.aspx)

GetListOfThreads ( AD7Thread &threadObjects ) : int

Get the list of threads being debugged, also returning the index of the current thread (or -1 in case of error)

GetMemoryBytes ( IDebugMemoryBytes2 &ppMemoryBytes ) : int

Retrieves the memory bytes occupied by the program. Not implemented. (http://msdn.microsoft.com/en-us/library/bb145291.aspx)

GetName ( string &programName ) : int

Gets the name of the program. The name returned by this method is always a friendly, user-displayable name that describes the program. (http://msdn.microsoft.com/en-us/library/bb161279.aspx)

GetProcess ( IDebugProcess2 &process ) : int

Get the process that this program is running in. Not implemented. (http://msdn.microsoft.com/en-us/library/bb145293.aspx)

GetProgramId ( Guid &guidProgramId ) : int

Gets a GUID for this program. A debug engine (DE) must return the program identifier originally passed to the IDebugProgramNodeAttach2::OnAttach or IDebugEngine2::Attach methods. This allows identification of the program across debugger components. (http://msdn.microsoft.com/en-us/library/bb145581.aspx)

SetSymbolLoadState ( int bIsManual, int bLoadAdjacent, string strIncludeList, string strExcludeList ) : int

The SDM will call this method on the debug engine when it is created, to notify it of the user's symbol settings in Tools->Options->Debugging->Symbols. (http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.debugger.interop.idebugsymbolsettings100.setsymbolloadstate.aspx)

Step ( IDebugThread2 pThread, enum_STEPKIND sk, enum_STEPUNIT Step ) : int

Performs a step. This method is deprecated. Use the IDebugProcess3::Step method instead. (http://msdn.microsoft.com/en-us/library/bb162134.aspx)

Stop ( ) : int

Stops all threads running in this program. This method is called when this program is being debugged in a multi-program environment. When a stopping event from some other program is received, this method is called on this program. The implementation of this method should be asynchronous; that is, not all threads should be required to be stopped before this method returns. The implementation of this method may be as simple as calling the IDebugProgram2::CauseBreak method on this program. Not implemented. (http://msdn.microsoft.com/en-us/library/bb146567.aspx) The VSNDK debug engine only supports debugging native applications and therefore only has one program per-process

Terminate ( ) : int

Terminates the program. (http://msdn.microsoft.com/en-us/library/bb145919.aspx)

UpdateListOfThreads ( ) : void

Update the list of threads. This operation must be performed whenever the list of threads changes (a thread exits or is created) and before entering in break mode.

WatchForExpressionEvaluationOnThread ( IDebugProgram2 pOriginatingProgram, uint dwTid, uint dwEvalFlags, IDebugEventCallback2 pExprCallback, int fWatch ) : int

Allows (or disallows) expression evaluation to occur on the given thread, even if the program has stopped. WatchForExpressionEvaluationOnThread is used to cooperate between two different engines debugging the same process. The VSNDK debug engine doesn't cooperate with other engines, so it has nothing to do here. (http://msdn.microsoft.com/en-us/library/bb144913.aspx)

WatchForThreadStep ( IDebugProgram2 pOriginatingProgram, uint dwTid, int fWatch, uint dwFrame ) : int

Watches for execution (or stops watching for execution) to occur on the given thread. WatchForThreadStep is used to cooperate between two different engines debugging the same process. The VSNDK debug engine doesn't cooperate with other engines, so it has nothing to do here. (http://msdn.microsoft.com/en-us/library/bb161406.aspx)

WriteDump ( enum_DUMPTYPE DUMPTYPE, string pszDumpUrl ) : int

Writes a dump to a file. Not implemented. (http://msdn.microsoft.com/en-us/library/bb145827.aspx)

cleanEvaluatedThreads ( ) : void

Clean the "flags" data (_alreadyEvaluated) that are stored in each thread without resetting the stack frames. This operation must be done whenever the stack frames for a given thread have to be evaluated, like when the user changes the current frame or when he wants to investigate different threads in break mode, for example.

currentThread ( ) : AD7Thread

Returns the current thread.

evaluatedTheseFlags ( string threadId, enum_FRAMEINFO_FLAGS flags ) : bool

Verify if the stack frame information specified by "flags" were already evaluated.

resetStackFrames ( ) : void

Reset stack frames for each thread. This operation must be performed before changing the state to break mode, like when a breakpoint is hit, for example.

selectThread ( string id ) : AD7Thread

Returns the thread data structure with a given ID.

setAsCurrentThread ( string id ) : void

Set a given thread as the current one.

비공개 메소드들

메소드 설명
IDebugEngine2 ( ) : int

Requests that all programs being debugged by this DE stop execution the next time one of their threads attempts to run. This is normally called in response to the user clicking on the pause button in the debugger. When the break is complete, an AsyncBreakComplete event will be sent back to the debugger. (http://msdn.microsoft.com/en-us/library/bb145141.aspx)

IDebugEngine2 ( EXCEPTION_INFO pException ) : int

Removes the specified exception so it is no longer handled by the debug engine. The VSNDK debug engine does not support exceptions in the debuggee so this method is not actually implemented. (http://msdn.microsoft.com/en-us/library/bb161697.aspx)

IDebugEngine2 ( Guid &guidEngine ) : int

Gets the GUID of the DE. (http://msdn.microsoft.com/en-us/library/bb145079.aspx)

IDebugEngine2 ( IDebugBreakpointRequest2 pBPRequest, IDebugPendingBreakpoint2 &ppPendingBP ) : int

Creates a pending breakpoint in the Debug Engine. A pending breakpoint is essentially a collection of all the information needed to bind a breakpoint to code. (http://msdn.microsoft.com/en-us/library/bb147033.aspx)

IDebugEngine2 ( IDebugEvent2 eventObject ) : int

Called by the SDM to indicate that a synchronous debug event, previously sent by the DE to the SDM, was received and processed. The only event the VSNDK Debug Engine sends in this fashion is Program Destroy. It responds to that event by shutting down the engine. (http://msdn.microsoft.com/en-us/library/bb160915.aspx)

IDebugEngine2 ( IDebugProgram2 pProgram ) : int

Informs a DE that the program specified has been atypically terminated and that the DE should clean up all references to the program and send a program destroy event. (http://msdn.microsoft.com/en-us/library/bb145073.aspx)

IDebugEngine2 ( IDebugProgram2 rgpPrograms, IDebugProgramNode2 rgpProgramNodes, uint aCeltPrograms, IDebugEventCallback2 ad7Callback, enum_ATTACH_REASON dwReason ) : int

Attach the debug engine to a program. (http://msdn.microsoft.com/en-us/library/bb145136.aspx)

IDebugEngine2 ( IEnumDebugPrograms2 &programs ) : int

Retrieves a list of all programs being debugged by a debug engine (DE). Not implemented. (http://msdn.microsoft.com/en-us/library/bb146175.aspx)

IDebugEngine2 ( string pszRegistryRoot ) : int

Sets the registry root currently in use by the DE. Different installations of Visual Studio can change where their registry information is stored. This allows the debugger to tell the engine where that location is. (http://msdn.microsoft.com/en-us/library/bb161800.aspx)

IDebugEngine2 ( string pszMetric, object varValue ) : int

A metric is a registry value used to change a debug engine's behavior or to advertise supported functionality. This method can forward the call to the appropriate form of the Debugging SDK Helpers function, SetMetric. (http://msdn.microsoft.com/en-us/library/bb161968.aspx)

IDebugEngine2 ( ushort wLangID ) : int

Sets the locale of the DE. This method is called by the session debug manager (SDM) to propagate the locale settings of the IDE so that strings returned by the DE are properly localized. The sample engine is not localized so this is not implemented. (http://msdn.microsoft.com/en-us/library/bb161784.aspx)

IDebugEngineLaunch2 ( IDebugProcess2 process ) : int

Determines if a process can be terminated. (http://msdn.microsoft.com/en-us/library/bb146673.aspx)

IDebugEngineLaunch2 ( string pszServer, IDebugPort2 port, string exe, string args, string dir, string env, string options, enum_LAUNCH_FLAGS launchFlags, uint hStdInput, uint hStdOutput, uint hStdError, IDebugEventCallback2 ad7Callback, IDebugProcess2 &process ) : int

Launches a process by means of the debug engine. (http://msdn.microsoft.com/en-us/library/bb146223.aspx)

메소드 상세

AD7Engine() 공개 메소드

Constructor.
public AD7Engine ( ) : System
리턴 System

AddThreadsToProgram() 공개 메소드

Add threads for a program when lauching it and the debugger (IDebugEngineLaunch2.LaunchSuspended).
public AddThreadsToProgram ( ) : int
리턴 int

Attach() 공개 메소드

Attaches to the program. Not implemented. (http://msdn.microsoft.com/en-us/library/bb161973.aspx)
public Attach ( IDebugEventCallback2 pCallback ) : int
pCallback IDebugEventCallback2
리턴 int

CanDetach() 공개 메소드

Determines if a debug engine (DE) can detach from the program. (http://msdn.microsoft.com/en-us/library/bb161967.aspx)
public CanDetach ( ) : int
리턴 int

CauseBreak() 공개 메소드

Requests that the program stop execution the next time one of its threads attempts to run. The debugger calls CauseBreak when the user clicks on the pause button in VS. The debugger should respond by entering breakmode. (http://msdn.microsoft.com/en-us/library/bb145018.aspx)
public CauseBreak ( ) : int
리턴 int

Continue() 공개 메소드

Continues running this program from a stopped state. Any previous execution state (such as a step) is preserved, and the program starts executing again. (http://msdn.microsoft.com/en-us/library/bb162148.aspx)
public Continue ( IDebugThread2 pThread ) : int
pThread IDebugThread2 An IDebugThread2 object that represents the thread.
리턴 int

Detach() 공개 메소드

Detaches a debug engine from the program. (http://msdn.microsoft.com/en-us/library/bb146228.aspx)
public Detach ( ) : int
리턴 int

EnumCodeContexts() 공개 메소드

Retrieves a list of the code contexts for a given position in a source file. Not implemented. (http://msdn.microsoft.com/en-us/library/bb145902.aspx)
public EnumCodeContexts ( IDebugDocumentPosition2 pDocPos, IEnumDebugCodeContexts2 &ppEnum ) : int
pDocPos IDebugDocumentPosition2 An object representing an abstract position in a source file known to the IDE.
ppEnum IEnumDebugCodeContexts2 Returns an IEnumDebugCodeContexts2 object that contains a list of the code contexts.
리턴 int

EnumCodePaths() 공개 메소드

Retrieves a list of the code paths for a given position in a source file. EnumCodePaths is used for the step-into specific feature -- right click on the current statement and decide which function to step into. This is not something that the VSNDK debug engine supports. (http://msdn.microsoft.com/en-us/library/bb162326.aspx)
public EnumCodePaths ( string hint, IDebugCodeContext2 start, IDebugStackFrame2 frame, int fSource, IEnumCodePaths2 &pathEnum, IDebugCodeContext2 &safetyContext ) : int
hint string The word under the cursor in the Source or Disassembly view in the IDE.
start IDebugCodeContext2 An IDebugCodeContext2 object representing the current code context.
frame IDebugStackFrame2 An IDebugStackFrame2 object representing the stack frame associated with the current breakpoint.
fSource int Nonzero (TRUE) if in the Source view, or zero (FALSE) if in the Disassembly view.
pathEnum IEnumCodePaths2 Returns an IEnumCodePaths2 object containing a list of the code paths.
safetyContext IDebugCodeContext2 Returns an IDebugCodeContext2 object representing an additional code context to be set as a /// breakpoint in case the chosen code path is skipped. This can happen in the case of a short-circuited Boolean expression, /// for example.
리턴 int

EnumModules() 공개 메소드

Retrieves a list of the modules that this program has loaded and is executing. (http://msdn.microsoft.com/en-us/library/bb146980.aspx)
public EnumModules ( IEnumDebugModules2 &ppEnum ) : int
ppEnum IEnumDebugModules2 Returns an IEnumDebugModules2 object that contains a list of the modules.
리턴 int

EnumThreads() 공개 메소드

Retrieves a list of the threads that are running in the program. (http://msdn.microsoft.com/en-us/library/bb145110.aspx)
public EnumThreads ( IEnumDebugThreads2 &ppEnum ) : int
ppEnum IEnumDebugThreads2 Returns an IEnumDebugThreads2 object that contains a list of the threads.
리턴 int

Execute() 공개 메소드

TODO: Verify if this method is called or not by VS. Continues running this program from a stopped state. Any previous execution state (such as a step) is cleared, and the program starts executing again. (http://msdn.microsoft.com/en-us/library/bb162315.aspx)
public Execute ( ) : int
리턴 int

ExecuteOnThread() 공개 메소드

Executes the debugger program. The thread is returned to give the debugger information on which thread the user is viewing when executing the program. ExecuteOnThread is called when the SDM wants execution to continue and have stepping state cleared. (http://msdn.microsoft.com/en-us/library/bb145596.aspx)
public ExecuteOnThread ( IDebugThread2 pThread ) : int
pThread IDebugThread2 An IDebugThread2 object.
리턴 int

GetDebugProperty() 공개 메소드

Gets the program's properties. The VSNDK debug engine does not support this. (http://msdn.microsoft.com/en-us/library/bb161801.aspx)
public GetDebugProperty ( IDebugProperty2 &ppProperty ) : int
ppProperty IDebugProperty2 Returns an IDebugProperty2 object that represents the program's properties.
리턴 int

GetDisassemblyStream() 공개 메소드

Gets the disassembly stream for this program or a part of this program. The sample engine does not support dissassembly so it returns E_NOTIMPL
public GetDisassemblyStream ( enum_DISASSEMBLY_STREAM_SCOPE dwScope, IDebugCodeContext2 codeContext, IDebugDisassemblyStream2 &disassemblyStream ) : int
dwScope enum_DISASSEMBLY_STREAM_SCOPE Specifies a value from the DISASSEMBLY_STREAM_SCOPE enumeration that defines the scope of the /// disassembly stream.
codeContext IDebugCodeContext2 An object that represents the position of where to start the disassembly stream.
disassemblyStream IDebugDisassemblyStream2 Returns an IDebugDisassemblyStream2 object that represents the disassembly stream.
리턴 int

GetENCUpdate() 공개 메소드

This method gets the Edit and Continue (ENC) update for this program. A custom debug engine always returns E_NOTIMPL
public GetENCUpdate ( object &update ) : int
update object Returns an internal interface that can be used to update this program.
리턴 int

GetEngineInfo() 공개 메소드

Gets the name and GUID of the debug engine running this program. (http://msdn.microsoft.com/en-us/library/bb145854.aspx)
public GetEngineInfo ( string &engineName, Guid &engineGuid ) : int
engineName string Returns the name of the DE running this program.
engineGuid Guid Returns the GUID of the DE running this program.
리턴 int

GetListOfThreads() 공개 메소드

Get the list of threads being debugged, also returning the index of the current thread (or -1 in case of error)
public GetListOfThreads ( AD7Thread &threadObjects ) : int
threadObjects AD7Thread Returns the current list of threads that are being debugged.
리턴 int

GetMemoryBytes() 공개 메소드

Retrieves the memory bytes occupied by the program. Not implemented. (http://msdn.microsoft.com/en-us/library/bb145291.aspx)
public GetMemoryBytes ( IDebugMemoryBytes2 &ppMemoryBytes ) : int
ppMemoryBytes IDebugMemoryBytes2 Returns an IDebugMemoryBytes2 object that represents the memory bytes of the program.
리턴 int

GetName() 공개 메소드

Gets the name of the program. The name returned by this method is always a friendly, user-displayable name that describes the program. (http://msdn.microsoft.com/en-us/library/bb161279.aspx)
public GetName ( string &programName ) : int
programName string Returns the name of the program.
리턴 int

GetProcess() 공개 메소드

Get the process that this program is running in. Not implemented. (http://msdn.microsoft.com/en-us/library/bb145293.aspx)
public GetProcess ( IDebugProcess2 &process ) : int
process IDebugProcess2 Returns the IDebugProcess2 interface that represents the process.
리턴 int

GetProgramId() 공개 메소드

Gets a GUID for this program. A debug engine (DE) must return the program identifier originally passed to the IDebugProgramNodeAttach2::OnAttach or IDebugEngine2::Attach methods. This allows identification of the program across debugger components. (http://msdn.microsoft.com/en-us/library/bb145581.aspx)
public GetProgramId ( Guid &guidProgramId ) : int
guidProgramId Guid Returns the GUID for this program.
리턴 int

SetSymbolLoadState() 공개 메소드

The SDM will call this method on the debug engine when it is created, to notify it of the user's symbol settings in Tools->Options->Debugging->Symbols. (http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.debugger.interop.idebugsymbolsettings100.setsymbolloadstate.aspx)
public SetSymbolLoadState ( int bIsManual, int bLoadAdjacent, string strIncludeList, string strExcludeList ) : int
bIsManual int true if 'Automatically load symbols: Only for specified modules' is checked.
bLoadAdjacent int true if 'Specify modules'->'Always load symbols next to the modules' is checked.
strIncludeList string semicolon-delimited list of modules when automatically loading 'Only specified modules'
strExcludeList string semicolon-delimited list of modules when automatically loading 'All modules, unless excluded'
리턴 int

Step() 공개 메소드

Performs a step. This method is deprecated. Use the IDebugProcess3::Step method instead. (http://msdn.microsoft.com/en-us/library/bb162134.aspx)
public Step ( IDebugThread2 pThread, enum_STEPKIND sk, enum_STEPUNIT Step ) : int
pThread IDebugThread2 An IDebugThread2 object that represents the thread being stepped.
sk enum_STEPKIND A value from the STEPKIND enumeration that specifies the kind of step.
Step enum_STEPUNIT A value from the STEPUNIT enumeration that specifies the unit of step.
리턴 int

Stop() 공개 메소드

Stops all threads running in this program. This method is called when this program is being debugged in a multi-program environment. When a stopping event from some other program is received, this method is called on this program. The implementation of this method should be asynchronous; that is, not all threads should be required to be stopped before this method returns. The implementation of this method may be as simple as calling the IDebugProgram2::CauseBreak method on this program. Not implemented. (http://msdn.microsoft.com/en-us/library/bb146567.aspx) The VSNDK debug engine only supports debugging native applications and therefore only has one program per-process
public Stop ( ) : int
리턴 int

Terminate() 공개 메소드

Terminates the program. (http://msdn.microsoft.com/en-us/library/bb145919.aspx)
public Terminate ( ) : int
리턴 int

UpdateListOfThreads() 공개 메소드

Update the list of threads. This operation must be performed whenever the list of threads changes (a thread exits or is created) and before entering in break mode.
public UpdateListOfThreads ( ) : void
리턴 void

WatchForExpressionEvaluationOnThread() 공개 메소드

Allows (or disallows) expression evaluation to occur on the given thread, even if the program has stopped. WatchForExpressionEvaluationOnThread is used to cooperate between two different engines debugging the same process. The VSNDK debug engine doesn't cooperate with other engines, so it has nothing to do here. (http://msdn.microsoft.com/en-us/library/bb144913.aspx)
public WatchForExpressionEvaluationOnThread ( IDebugProgram2 pOriginatingProgram, uint dwTid, uint dwEvalFlags, IDebugEventCallback2 pExprCallback, int fWatch ) : int
pOriginatingProgram IDebugProgram2 An IDebugProgram2 object representing the program that is evaluating an expression.
dwTid uint Specifies the identifier of the thread.
dwEvalFlags uint A combination of flags from the EVALFLAGS enumeration that specify how the evaluation is to be /// performed.
pExprCallback IDebugEventCallback2 An IDebugEventCallback2 object to be used to send debug events that occur during expression /// evaluation.
fWatch int If non-zero (TRUE), allows expression evaluation on the thread identified by dwTid; otherwise, zero /// (FALSE) disallows expression evaluation on that thread.
리턴 int

WatchForThreadStep() 공개 메소드

Watches for execution (or stops watching for execution) to occur on the given thread. WatchForThreadStep is used to cooperate between two different engines debugging the same process. The VSNDK debug engine doesn't cooperate with other engines, so it has nothing to do here. (http://msdn.microsoft.com/en-us/library/bb161406.aspx)
public WatchForThreadStep ( IDebugProgram2 pOriginatingProgram, uint dwTid, int fWatch, uint dwFrame ) : int
pOriginatingProgram IDebugProgram2 An IDebugProgram2 object representing the program being stepped.
dwTid uint Specifies the identifier of the thread to watch.
fWatch int Non-zero (TRUE) means start watching for execution on the thread identified by dwTid; otherwise, /// zero (FALSE) means stop watching for execution on dwTid.
dwFrame uint Specifies a frame index that controls the step type.
리턴 int

WriteDump() 공개 메소드

Writes a dump to a file. Not implemented. (http://msdn.microsoft.com/en-us/library/bb145827.aspx)
public WriteDump ( enum_DUMPTYPE DUMPTYPE, string pszDumpUrl ) : int
DUMPTYPE enum_DUMPTYPE A value from the DUMPTYPE enumeration that specifies the type of dump, for example, short or /// long.
pszDumpUrl string The URL to write the dump to. Typically, this is in the form of file://c:\path\filename.ext, /// but may be any valid URL.
리턴 int

cleanEvaluatedThreads() 공개 메소드

Clean the "flags" data (_alreadyEvaluated) that are stored in each thread without resetting the stack frames. This operation must be done whenever the stack frames for a given thread have to be evaluated, like when the user changes the current frame or when he wants to investigate different threads in break mode, for example.
public cleanEvaluatedThreads ( ) : void
리턴 void

currentThread() 공개 메소드

Returns the current thread.
public currentThread ( ) : AD7Thread
리턴 AD7Thread

evaluatedTheseFlags() 공개 메소드

Verify if the stack frame information specified by "flags" were already evaluated.
public evaluatedTheseFlags ( string threadId, enum_FRAMEINFO_FLAGS flags ) : bool
threadId string Thread ID.
flags enum_FRAMEINFO_FLAGS Specifies the information to verify about a stack frame object.
리턴 bool

resetStackFrames() 공개 메소드

Reset stack frames for each thread. This operation must be performed before changing the state to break mode, like when a breakpoint is hit, for example.
public resetStackFrames ( ) : void
리턴 void

selectThread() 공개 메소드

Returns the thread data structure with a given ID.
public selectThread ( string id ) : AD7Thread
id string The ID of the thread to search for.
리턴 AD7Thread

setAsCurrentThread() 공개 메소드

Set a given thread as the current one.
public setAsCurrentThread ( string id ) : void
id string The ID of the thread.
리턴 void

프로퍼티 상세

_currentThreadIndex 공개적으로 프로퍼티

The position in the m_threads array that corresponds to the current thread.
public int _currentThreadIndex
리턴 int

_updateThreads 공개적으로 프로퍼티

TRUE whenever a thread is created/ended, so the debug engine can update the m_threads data structure.
public bool _updateThreads
리턴 bool

m_breakpointManager 보호되어 있는 프로퍼티

This object manages breakpoints in the sample engine.
protected BreakpointManager m_breakpointManager
리턴 BreakpointManager

m_docContext 공개적으로 프로퍼티

Allows IDE to show current position in a source file
public AD7DocumentContext m_docContext
리턴 AD7DocumentContext

m_eventDispatcher 보호되어 있는 프로퍼티

This object manages debug events in the engine.
protected EventDispatcher m_eventDispatcher
리턴 EventDispatcher

m_process 공개적으로 프로퍼티

A process running on a port. A process "Is a container for a set of programs".
public AD7Process m_process
리턴 AD7Process

m_progNode 공개적으로 프로퍼티

A program that can be debugged.
public AD7ProgramNode m_progNode
리턴 AD7ProgramNode

m_running 공개적으로 프로퍼티

Used to avoid race condition when there are conditional breakpoints and the user hit break all. Both events will pause the Debug Engine, but the one related to conditional breakpoint can resume execution. If both events happens at the same time, the Debug Engine could resume the execution instead of pausing it.
public ManualResetEvent m_running
리턴 ManualResetEvent

m_state 공개적으로 프로퍼티

public DE_STATE m_state
리턴 DE_STATE

m_updatingConditionalBreakpoint 공개적으로 프로퍼티

Used to avoid race condition when there are conditional breakpoints and a breakpoint is hit. This situation is similar to the above one.
public ManualResetEvent m_updatingConditionalBreakpoint
리턴 ManualResetEvent