• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# SymbolStore.SymbolToken类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中System.Diagnostics.SymbolStore.SymbolToken的典型用法代码示例。如果您正苦于以下问题:C# SymbolToken类的具体用法?C# SymbolToken怎么用?C# SymbolToken使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



SymbolToken类属于System.Diagnostics.SymbolStore命名空间,在下文中一共展示了SymbolToken类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: Write

        public void Write(MethodBody body)
        {
            var method_token = body.Method.MetadataToken;
            var sym_token = new SymbolToken (method_token.ToInt32 ());

            var instructions = CollectInstructions (body);
            if (instructions.Count == 0 && !body.HasVariables)
                return;

            writer.OpenMethod (sym_token);

            DefineSequencePoints (instructions);

            if (body.Scope != null)
                WriteScope (body, body.Scope);
            else
            if (body.HasVariables)
            {
                var start_offset = 0;
                var end_offset = body.CodeSize;

                writer.OpenScope  (start_offset);
                DefineVariables   (body, body.Variables, start_offset, end_offset);
                writer.CloseScope (end_offset);
            }

            if (body.IteratorType != null)
                DefineIteratorType   (sym_token, body.IteratorType.Name);

            if (body.iterator_scopes != null)
                DefineIteratorScopes (sym_token, body.IteratorScopes, body.CodeSize);

            writer.CloseMethod ();
        }
开发者ID:atykhyy,项目名称:cecil,代码行数:34,代码来源:PdbWriter.cs


示例2: CreateScopes

		void CreateScopes (MethodBody body, ScopeCollection scopes, SymbolToken localVarToken)
		{
			foreach (Scope s in scopes) {
				int startOffset = s.Start.Offset;
				int endOffset = s.End == body.Instructions.Outside ?
					body.Instructions[body.Instructions.Count - 1].Offset + 1 :
					s.End.Offset;

				m_writer.OpenScope (startOffset);
				m_writer.UsingNamespace (body.Method.DeclaringType.Namespace);
				m_writer.OpenNamespace (body.Method.DeclaringType.Namespace);

				int start = body.Instructions.IndexOf (s.Start);
				int end = s.End == body.Instructions.Outside ?
					body.Instructions.Count - 1 :
					body.Instructions.IndexOf (s.End);

				ArrayList instructions = CollectSequencePoints (body, start, end);
				DefineSequencePoints (instructions);

				CreateLocalVariable (s, startOffset, endOffset, localVarToken);

				CreateScopes (body, s.Scopes, localVarToken);
				m_writer.CloseNamespace ();

				m_writer.CloseScope (endOffset);
			}
		}
开发者ID:pusp,项目名称:o2platform,代码行数:28,代码来源:PdbWriter.cs


示例3: GetMethod

		public ISymbolMethod GetMethod(SymbolToken method, int version) {
			ISymUnmanagedMethod unMethod;
			int hr = reader.GetMethodByVersion((uint)method.GetToken(), version, out unMethod);
			if (hr == E_FAIL)
				return null;
			Marshal.ThrowExceptionForHR(hr);
			return unMethod == null ? null : new SymbolMethod(unMethod);
		}
开发者ID:EmilZhou,项目名称:dnlib,代码行数:8,代码来源:SymbolReader.cs


示例4: NotSupportedException

	public virtual void DefineField
				(SymbolToken parent, String name,
				 FieldAttributes attributes, 
				 byte[] signature, 
				 SymAddressKind addrKind, 
				 int addr1, int addr2, int addr3)
			{
				throw new NotSupportedException();
			}
开发者ID:jjenki11,项目名称:blaze-chem-rendering,代码行数:9,代码来源:SymWriter.cs


示例5: GetMethodByVersion

 public int GetMethodByVersion(SymbolToken methodToken, int version, out ISymUnmanagedMethod retVal)
 {
     var hr = _reader.GetMethodByVersion(methodToken, version, out retVal);
     if (retVal != null)
     {
         retVal = new SymMethod(this, retVal);
     }
     return hr;
 }
开发者ID:elemk0vv,项目名称:roslyn-1,代码行数:9,代码来源:SymReader.cs


示例6: Write

        public void Write(MethodBody body)
        {
            var method_token = body.Method.MetadataToken;
            var sym_token = new SymbolToken (method_token.ToInt32 ());

            writer.OpenMethod (sym_token);
            DefineSequencePoints (body);
            DefineVariables (body);
            writer.CloseMethod ();
        }
开发者ID:peterwald,项目名称:cecil,代码行数:10,代码来源:PdbWriter.cs


示例7: GetSymMethod

 private ISymUnmanagedMethod GetSymMethod(SymbolToken token)
 {
     try
     {
         return _comReader.GetMethod(token);
     }
     catch
     {
         return null;
     }
 }
开发者ID:die-Deutsche-Orthopaedie,项目名称:LiteDevelop,代码行数:11,代码来源:PdbSymbols.cs


示例8: DefineLocalVariable2

		public void DefineLocalVariable2 (string name,
										  FieldAttributes attributes,
										  SymbolToken sigToken,
										  SymAddressKind addrKind,
										  int addr1,
										  int addr2,
										  int addr3,
										  int startOffset,
										  int endOffset)
		{
			((ISymUnmanagedWriter2)m_writer).DefineLocalVariable2 (name, (int)attributes, sigToken, (int)addrKind, addr1, addr2, addr3, startOffset, endOffset);
		}
开发者ID:transformersprimeabcxyz,项目名称:cecil-old,代码行数:12,代码来源:SymWriter.cs


示例9: DefineVariables

		void DefineVariables (MethodBody body, int start_offset, int end_offset)
		{
			if (!body.HasVariables)
				return;

			var sym_token = new SymbolToken (body.LocalVarToken.ToInt32 ());

			var variables = body.Variables;
			for (int i = 0; i < variables.Count; i++) {
				var variable = variables [i];
				CreateLocalVariable (variable, sym_token, start_offset, end_offset);
			}
		}
开发者ID:XQuantumForceX,项目名称:Reflexil,代码行数:13,代码来源:PdbWriter.cs


示例10: CreateLocalVariable

 void CreateLocalVariable(VariableDebugInformation variable, SymbolToken local_var_token, int start_offset, int end_offset)
 {
     writer.DefineLocalVariable2 (
         variable.Name,
         variable.Attributes,
         local_var_token,
         SymAddressKind.ILOffset,
         variable.Index,
         0,
         0,
         start_offset,
         end_offset);
 }
开发者ID:jbevain,项目名称:cecil,代码行数:13,代码来源:PdbWriter.cs


示例11: GetSymReader

 public static ISymbolMethod GetSymReader(this MethodBase method)
 {
     var reader = method.Module.GetSymReader();
     if (reader == null)
     {
         return null;
     }
     else
     {
         var token = new SymbolToken(method.MetadataToken);
         return reader.GetMethod(token);
     }
 }
开发者ID:xeno-by,项目名称:truesight-lite,代码行数:13,代码来源:LowLevelApi.cs


示例12: Write

        public void Write(MethodDebugInformation info)
        {
            var method_token = info.method.MetadataToken;
            var sym_token = new SymbolToken (method_token.ToInt32 ());

            writer.OpenMethod (sym_token);

            if (!info.sequence_points.IsNullOrEmpty ())
                DefineSequencePoints (info.sequence_points);

            if (info.scope != null)
                DefineScope (info.scope, info);

            writer.CloseMethod ();
        }
开发者ID:jbevain,项目名称:cecil,代码行数:15,代码来源:PdbWriter.cs


示例13: Write

		public void Write (MethodBody body)
		{
			var method_token = body.Method.MetadataToken;
			var sym_token = new SymbolToken (method_token.ToInt32 ());

			var instructions = CollectInstructions (body);
			if (instructions.Count == 0)
				return;

			var start_offset = 0;
			var end_offset = body.CodeSize;

			writer.OpenMethod (sym_token);
			writer.OpenScope (start_offset);

			DefineSequencePoints (instructions);
			DefineVariables (body, start_offset, end_offset);

			writer.CloseScope (end_offset);
			writer.CloseMethod ();
		}
开发者ID:XQuantumForceX,项目名称:Reflexil,代码行数:21,代码来源:PdbWriter.cs


示例14: TryGetFunctionByLocation

        public bool TryGetFunctionByLocation(SourceLocation location, out SymbolToken token)
        {
            token = default(SymbolToken);

            try
            {
                var document = _comReader.GetDocument(location.FilePath.FullPath, default(Guid), default(Guid), default(Guid));
                if (document == null)
                    return false;

                var method = _comReader.GetMethodFromDocumentPosition(document, location.Line, location.Column);
                if (method == null)
                    return false;

                token = method.GetToken();
                return true;
            }
            catch (COMException)
            {
                return false;
            }
        }
开发者ID:die-Deutsche-Orthopaedie,项目名称:LiteDevelop,代码行数:22,代码来源:PdbSymbols.cs


示例15: OpenMethod

 /// <include file='doc\SymWriter.uex' path='docs/doc[@for="SymbolWriter.OpenMethod"]/*' />
 public void OpenMethod(SymbolToken method)
 {
     m_target.OpenMethod(method);
 }
开发者ID:jredville,项目名称:ipydbg,代码行数:5,代码来源:SymWriter.cs


示例16: DefineLocalVariable

 /// <include file='doc\SymWriter.uex' path='docs/doc[@for="SymbolWriter.DefineLocalVariable1"]/*' />
 public void DefineLocalVariable([MarshalAs(UnmanagedType.LPWStr)] String name,
                                 int attributes,
                                 SymbolToken sigToken,
                                 int addressKind,
                                 int addr1,
                                 int addr2,
                                 int addr3,
                                 int startOffset,
                                 int endOffset)
 {
     ((ISymUnmanagedWriter2)m_target).DefineLocalVariable2(name, attributes, sigToken,
                                  addressKind, addr1, addr2, addr3, startOffset, endOffset);
 }
开发者ID:jredville,项目名称:ipydbg,代码行数:14,代码来源:SymWriter.cs


示例17: DefineField

 /// <include file='doc\SymWriter.uex' path='docs/doc[@for="SymbolWriter.DefineField"]/*' />
 public void DefineField(SymbolToken parent,
                         String name,
                         FieldAttributes attributes,
                         byte[] signature,
                         SymAddressKind addressKind,
                         int addr1,
                         int addr2,
                         int addr3)
 {
     m_target.DefineField(parent, name, (int)attributes, signature.Length, signature,
                          (int)addressKind, addr1, addr2, addr3);
 }
开发者ID:jredville,项目名称:ipydbg,代码行数:13,代码来源:SymWriter.cs


示例18: DefineConstant

 /// <include file='doc\SymWriter.uex' path='docs/doc[@for="SymbolWriter.DefineConstant1"]/*' />
 public void DefineConstant([MarshalAs(UnmanagedType.LPWStr)] String name,
                           Object value,
                           SymbolToken sigToken)
 {
     ((ISymUnmanagedWriter2)m_target).DefineConstant2(name, value, sigToken);
 }
开发者ID:jredville,项目名称:ipydbg,代码行数:7,代码来源:SymWriter.cs


示例19: OpenMethod

		public void OpenMethod (SymbolToken method)
		{
			m_writer.OpenMethod (method);
		}
开发者ID:transformersprimeabcxyz,项目名称:cecil-old,代码行数:4,代码来源:SymWriter.cs


示例20: DefineIteratorType

        void DefineIteratorType(SymbolToken method_token, string name)
        {
            var buffer = new PE.ByteBuffer ();
            buffer.WriteByte (4);
            buffer.WriteByte (1);
            buffer.Align     (4);
            buffer.WriteByte (4);
            buffer.WriteByte (4);
            buffer.Align	 (4);

            var length = 10 + (uint) name.Length * 2;
            while (length % 4 > 0)
                length++;

            buffer.WriteUInt32 (length);
            buffer.WriteBytes (System.Text.Encoding.Unicode.GetBytes (name));
            buffer.WriteByte (0);
            buffer.Align	 (4);

            writer.SetSymAttribute (method_token, "MD2", buffer.length, buffer.buffer);
        }
开发者ID:atykhyy,项目名称:cecil,代码行数:21,代码来源:PdbWriter.cs



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# Tracing.EventSource类代码示例发布时间:2022-05-26
下一篇:
C# Reader.EventLogHandle类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap