本文整理汇总了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;未经允许,请勿转载。 |
请发表评论