Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #4
0
        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());
        }
Beispiel #5
0
        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();
        }
Beispiel #6
0
        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();
        }
Beispiel #7
0
 public CV_LVAR_ADDR_GAP(SymbolDataReader r)
 {
     GapStartOffset = r.ReadUInt16();
     Length         = r.ReadUInt16();
 }