private SymbolData ReadPDB(string asmPath) { //This is needed because fusion loader wouldn't find assemblies outside the Debugger's path. AppDomain currentDomain = AppDomain.CurrentDomain; string folderPath = Path.GetFullPath(Path.GetDirectoryName(asmPath)); string assemblyName = Path.GetFileName(asmPath); ResolveEventHandler resolver = (sender, _args) => { string assemblyPath = Path.Combine(folderPath, new AssemblyName(_args.Name).Name + ".dll"); if (File.Exists(assemblyPath) == false) { return(null); } Assembly assembly = Assembly.ReflectionOnlyLoadFrom(assemblyPath); return(assembly); }; currentDomain.ReflectionOnlyAssemblyResolve += resolver; SymbolDataReader reader = new SymbolDataReader(asmPath, SymbolFormat.PDB, true); var result = reader.ReadSymbols(); currentDomain.ReflectionOnlyAssemblyResolve -= resolver; return(result); }
public override void Read() { SymbolDataReader r = CreateReader(); Offset = r.ReadUInt32(); Type = r.ReadIndexedType32Lazy(); Name = r.ReadSymbolString(); }
public override void Read() { var r = new SymbolDataReader(ctx, stream); Register = r.ReadUInt16(); Attributes = r.ReadFlagsEnum <RangeAttributes>(); Range = new CV_LVAR_ADDR_RANGE(stream); Gaps = CV_LVAR_ADDR_GAP.ReadGaps(r); }
public static CV_LVAR_ADDR_GAP[] ReadGaps(SymbolDataReader r) { // interpret remaining data as gaps int numGaps = r.Remaining / CV_LVAR_ADDR_GAP.SIZE; return(Enumerable .Range(1, numGaps) .Select(_ => new CV_LVAR_ADDR_GAP(r)) .ToArray()); }
public override void Read() { SymbolDataReader r = CreateReader(); ParentOffset = r.ReadUInt32(); Parent = r.ReadSymbol(Module, ParentOffset); End = r.ReadUInt32(); Length = r.ReadUInt32(); Offset = r.ReadUInt32(); Segment = r.ReadUInt16(); Name = r.ReadSymbolString(); }
static void Main(string[] args) { try { ExcelTickersProvider tickersProvider = new ExcelTickersProvider(TickersProviderSettings.Instance); List <string> tickers = tickersProvider.GetTickers().ToList(); /* * // From http://www.tmxmoney.com/en/research/closed-end_funds.html * * List<string> tickers = new List<string>(); * * List<string> tickersRaw = new List<string>(new string[] * { * "CEF", * "PHY", * "PPT", * "PHS", * "MNT", * "MNS", * "AHY", * "BHY", * "PBY", * "SCW", * "HYB", * "DSL", * "ECF", * "PCF", * "ADC", * "NCD", * "FFI", * "CBT", * "MFR", * "MLD", * "MLF", * "OCS", * "OSL", * "PCD", * "PMB", * "PGI", * "RIB", * "FRL", * "SSF", * "TRH", * "IFL", * "ISL", * "IHL", * "AEU", * "ACZ", * "AOG", * "AUI", * "HRR", * "BLB", * "BUA", * "HBL", * "OSP", * "BGI", * "BSO", * "UDA", * "CPF", * "BK" , * "CCI", * "PFT", * "UTE", * "EIT", * "CRP", * "CDD", * "DS" , * "EVT", * "ENI", * "HEN", * "EBC", * "EBF", * "EGI", * "FGX", * "DCD", * "TRF", * "UCD", * "GAF", * "GDG", * "GHC", * "HIG", * "GRL", * "HGI", * "HTO", * "GBF", * "GSB", * "MDS", * "HHY", * "INC", * "IFB", * "PFU", * "PFD", * "LOW", * "LVU", * "MQA", * "MQI", * "MBK", * "MBN", * "RCO", * "HWF", * "NGI", * "NEW", * "NXC", * "NRF", * "OSF", * "PRF", * "MMP", * "PIC", * "PDV", * "RAV", * "RAI", * "IDR", * "PME", * "SIF", * "TOF", * "HTA", * "TLF", * "TCT", * "TTY", * "TTE", * "TUT", * "PUB", * "US" , * "USF", * "USH", * "UTC", * "MBB", * "AV" , * "VIP", * "RBN", * "BSE", * "CIQ", * "RTU", * "CTF", * "CMZ", * "NAF", * "IDX", * "JFS", * "MIF", * "MID", * "NPF", * "SIN", * "SKG", * "XYM", * "YP" , * "ERM", * "FNM", * "GII", * "TGF", * "TZZ", * "TZS", * "PBU", * "MKZ", * "FBS", * "ABK", * "ALB", * "BIG", * "BBO", * "BSC", * "LCS", * "SBC", * "BPS", * "BSD", * "LFE", * "YCM", * "DFN", * "DF" , * "DGS", * "FCS", * "FTN", * "GCS", * "GRP", * "LBS", * "XMF", * "FFN", * "PVS", * "RBS", * "SBN", * "XTD", * "TXT", * "FTU", * "UST", * "WFS", * "BXS" * }); * * foreach(string ticker in tickersRaw) * { * tickers.Add(ticker); * tickers.Add(ticker + "-a"); * tickers.Add(ticker + ".a"); * tickers.Add(ticker + ".u"); * tickers.Add(ticker + ".un"); * }*/ SymbolDataReader reader = new SymbolDataReader(SymbolsReaderSettings.Instance); IList <SymbolData> data = reader.GetSymbolData(tickers); WriteSymbolData(data); } catch (Exception e) { Log.Error($"Application error occured: {e}"); } Console.ReadKey(); }
public CV_LVAR_ADDR_GAP(SymbolDataReader r) { GapStartOffset = r.ReadUInt16(); Length = r.ReadUInt16(); }