Exemple #1
0
        void IDiaSession.getSymbolsByAddr(out IDiaEnumSymbolsByAddr ppEnumbyAddr)
        {
            dynamic typ = null;

            if (!Dia3.StructCache.ContainsKey(loadAddress.ToString("x")))
            {
                var json = SymAPI.FromAddress(loadAddress.ToString("x"), CV);
                typ = JsonConvert.DeserializeObject <SymNameInfo>(json.Result);

                Dia3.StructCache.TryAdd(loadAddress.ToString("x"), typ);
            }
            Dia3.StructCache.TryGetValue(loadAddress.ToString("x"), out typ);

            ppEnumbyAddr = new EnumSymbols(CV, EnumSymType.ByAddr, typ);
            return;
        }
Exemple #2
0
        void IDiaSession.findChildren(IDiaSymbol parent, SymTagEnum symTag, string name, uint compareFlags, out IDiaEnumSymbols ppResult)
        {
            dynamic typ = null;

            if (!Dia3.StructCache.ContainsKey(name))
            {
                var json      = SymAPI.TypeDef(name, CV);
                var converter = new Newtonsoft.Json.Converters.ExpandoObjectConverter();
                var obj       = JsonConvert.DeserializeObject <List <ExpandoObject> >(json.Result, converter);
                // we access just the first object back
                Dia3.StructCache.TryAdd(name, obj.First());
            }
            Dia3.StructCache.TryGetValue(name, out typ);

            ppResult = new EnumSymbols(CV, EnumSymType.Sym, typ);
            return;
        }
Exemple #3
0
 void IDiaSymbol.findChildren(SymTagEnum symTag, string name, uint compareFlags, out IDiaEnumSymbols ppResult)
 {
     ppResult = new EnumSymbols(CV, EnumSymType.Sym, Master);
     return;
 }
Exemple #4
0
 public void Clone(out IDiaEnumSymbols ppenum)
 {
     ppenum = new EnumSymbols(CV, eType, Current) as IDiaEnumSymbols;
     return;
 }