Property | Type | Description | |
---|---|---|---|
_currentThreadIndex | int | ||
_updateThreads | bool | ||
m_docContext | AD7DocumentContext | ||
m_process | AD7Process | ||
m_progNode | AD7ProgramNode | ||
m_running | ManualResetEvent | ||
m_state | DE_STATE | ||
m_updatingConditionalBreakpoint | ManualResetEvent |
Property | Type | Description | |
---|---|---|---|
m_breakpointManager | BreakpointManager | ||
m_eventDispatcher | EventDispatcher |
Property | Type | Description | |
---|---|---|---|
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 |
Method | Description | |
---|---|---|
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.
|
Method | Description | |
---|---|---|
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)
|
public Attach ( IDebugEventCallback2 pCallback ) : int | ||
pCallback | IDebugEventCallback2 | |
return | int |
public Continue ( IDebugThread2 pThread ) : int | ||
pThread | IDebugThread2 | An IDebugThread2 object that represents the thread. |
return | int |
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. |
return | int |
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. |
return | int |
public EnumModules ( IEnumDebugModules2 &ppEnum ) : int | ||
ppEnum | IEnumDebugModules2 | Returns an IEnumDebugModules2 object that contains a list of the modules. |
return | int |
public EnumThreads ( IEnumDebugThreads2 &ppEnum ) : int | ||
ppEnum | IEnumDebugThreads2 | Returns an IEnumDebugThreads2 object that contains a list of the threads. |
return | int |
public ExecuteOnThread ( IDebugThread2 pThread ) : int | ||
pThread | IDebugThread2 | An IDebugThread2 object. |
return | int |
public GetDebugProperty ( IDebugProperty2 &ppProperty ) : int | ||
ppProperty | IDebugProperty2 | Returns an IDebugProperty2 object that represents the program's properties. |
return | int |
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. |
return | int |
public GetENCUpdate ( object &update ) : int | ||
update | object | Returns an internal interface that can be used to update this program. |
return | int |
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. |
return | int |
public GetListOfThreads ( AD7Thread &threadObjects ) : int | ||
threadObjects | AD7Thread | Returns the current list of threads that are being debugged. |
return | int |
public GetMemoryBytes ( IDebugMemoryBytes2 &ppMemoryBytes ) : int | ||
ppMemoryBytes | IDebugMemoryBytes2 | Returns an IDebugMemoryBytes2 object that represents the memory bytes of the program. |
return | int |
public GetName ( string &programName ) : int | ||
programName | string | Returns the name of the program. |
return | int |
public GetProcess ( IDebugProcess2 &process ) : int | ||
process | IDebugProcess2 | Returns the IDebugProcess2 interface that represents the process. |
return | int |
public GetProgramId ( Guid &guidProgramId ) : int | ||
guidProgramId | Guid | Returns the GUID for this program. |
return | int |
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' |
return | int |
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. |
return | int |
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. |
return | int |
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. |
return | int |
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. |
return | int |
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. |
return | bool |
public selectThread ( string id ) : AD7Thread | ||
id | string | The ID of the thread to search for. |
return | AD7Thread |
public setAsCurrentThread ( string id ) : void | ||
id | string | The ID of the thread. |
return | void |
protected BreakpointManager m_breakpointManager | ||
return | BreakpointManager |
protected EventDispatcher m_eventDispatcher | ||
return | EventDispatcher |