public static extern ulong GetSymbolFileOffset(LLVMSymbolIteratorRef* SI);
public static extern ulong GetSymbolSize(LLVMSymbolIteratorRef* SI);
public static extern System.IntPtr GetSymbolName(LLVMSymbolIteratorRef* SI);
public static extern ulong GetSymbolAddress(LLVMSymbolIteratorRef* SI);
public static extern void MoveToNextSymbol(LLVMSymbolIteratorRef* SI);
public static extern int GetSectionContainsSymbol(LLVMSectionIteratorRef* SI, LLVMSymbolIteratorRef* Sym);
public static extern void DisposeSymbolIterator(LLVMSymbolIteratorRef* SI);
public static extern int IsSymbolIteratorAtEnd(LLVMObjectFileRef* ObjectFile, LLVMSymbolIteratorRef* SI);
public static extern void MoveToContainingSection(LLVMSectionIteratorRef* Sect, LLVMSymbolIteratorRef* Sym);
internal Symbol(TargetBinary binary, LLVMSymbolIteratorRef iterator, bool clone) { IteratorRef = clone ? LibLLVMSymbolIteratorClone(iterator) : iterator; ContainingBinary = binary; }
internal Symbol(TargetBinary objFile, LLVMSymbolIteratorRef iterator) : this(objFile, iterator, true) { }
internal Symbol(TargetObjectFile objFile, LLVMSymbolIteratorRef iterator, bool clone) { IteratorRef = clone ? LibLLVMSymbolIteratorClone(iterator) : iterator; ObjectFile = objFile; }
internal Symbol(TargetObjectFile objFile, LLVMSymbolIteratorRef iterator) : this(objFile, iterator, true) { }