本文整理汇总了C#中IDebugCodeContext2.GetInfo方法的典型用法代码示例。如果您正苦于以下问题:C# IDebugCodeContext2.GetInfo方法的具体用法?C# IDebugCodeContext2.GetInfo怎么用?C# IDebugCodeContext2.GetInfo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IDebugCodeContext2
的用法示例。
在下文中一共展示了IDebugCodeContext2.GetInfo方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SetNextStatement
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public override int SetNextStatement (IDebugStackFrame2 stackFrame, IDebugCodeContext2 codeContext)
{
//
// Sets the next statement to the given stack frame and code context.
//
LoggingUtils.PrintFunction ();
try
{
CONTEXT_INFO [] contextInfo = new CONTEXT_INFO [1];
LoggingUtils.RequireOk (codeContext.GetInfo (enum_CONTEXT_INFO_FIELDS.CIF_ADDRESSABSOLUTE, contextInfo));
string location = "*" + contextInfo [0].bstrAddressAbsolute;
m_debugProgram.AttachedEngine.NativeDebugger.RunInterruptOperation (delegate (CLangDebugger debugger)
{
//
// Create a temporary breakpoint to stop -exec-jump continuing when we'd rather it didn't.
//
string command = string.Format ("-break-insert -t \"{0}\"", location);
MiResultRecord resultRecord = debugger.GdbClient.SendSyncCommand (command);
MiResultRecord.RequireOk (resultRecord, command);
//
// Jump to the specified address location.
//
command = string.Format ("-exec-jump --thread {0} \"{1}\"", m_threadId, location);
resultRecord = debugger.GdbClient.SendSyncCommand (command);
MiResultRecord.RequireOk (resultRecord, command);
});
return Constants.S_OK;
}
catch (Exception e)
{
LoggingUtils.HandleException (e);
return Constants.E_FAIL;
}
}
示例2: GetCodeLocationId
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public int GetCodeLocationId (IDebugCodeContext2 pCodeContext, out ulong puCodeLocationId)
{
//
// Returns a code location identifier for a particular code context.
//
LoggingUtils.PrintFunction ();
try
{
CONTEXT_INFO [] contextInfoArray = new CONTEXT_INFO [1];
LoggingUtils.RequireOk (pCodeContext.GetInfo (enum_CONTEXT_INFO_FIELDS.CIF_ADDRESSABSOLUTE, contextInfoArray));
if (contextInfoArray [0].bstrAddressAbsolute.StartsWith ("0x"))
{
puCodeLocationId = ulong.Parse (contextInfoArray [0].bstrAddressAbsolute.Substring (2), NumberStyles.HexNumber);
}
else
{
puCodeLocationId = ulong.Parse (contextInfoArray [0].bstrAddressAbsolute, NumberStyles.HexNumber);
}
return Constants.S_OK;
}
catch (Exception e)
{
LoggingUtils.HandleException (e);
puCodeLocationId = 0ul;
return Constants.E_FAIL;
}
}