当前位置: 首页>>代码示例>>C#>>正文


C# IDebugCodeContext2.GetInfo方法代码示例

本文整理汇总了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;
      }
    }
开发者ID:ashumeow,项目名称:android-plus-plus,代码行数:52,代码来源:CLangDebuggeeThread.cs

示例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;
      }
    }
开发者ID:ashumeow,项目名称:android-plus-plus,代码行数:38,代码来源:CLangDebuggeeDisassemblyStream.cs


注:本文中的IDebugCodeContext2.GetInfo方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。