public static DbgNamedTypeInfo GetNamedTypeInfo(DbgEngDebugger debugger, DbgModuleInfo module, uint typeId, SymTag symTag) { return(_EnsureIsNamed(GetTypeInfo(debugger, module, typeId, symTag))); }
private static DbgTypeInfo _LoadTypeInfo(DbgEngDebugger debugger, DbgModuleInfo module, uint typeId, SymTag symTag) { if (null == debugger) { throw new ArgumentNullException("debugger"); } if (IsDbgGeneratedType(typeId) && !DbgHelp.PeekSyntheticTypeExists(debugger.DebuggerInterface, module.BaseAddress, typeId)) { return(new DbgGeneratedTypeInfo(debugger, module, typeId, symTag)); } return(debugger.ExecuteOnDbgEngThread(() => { if (((int)symTag) > sm_factories.Length) { // In case they extend the SymTag enum and I don't get updated. Util.Fail("Need to update SymTag enum."); return _DefaultFactory(debugger, module, typeId, symTag); } return sm_factories[(int)symTag](debugger, module, typeId); })); } // end _LoadTypeInfo()
} // end GetChildrenIds() private static DbgTypeInfo _DefaultFactory(DbgEngDebugger debugger, DbgModuleInfo module, uint typeId, SymTag symTag) { return(new DbgTypeInfo(debugger, module, typeId, symTag)); }
} // end constructor protected DbgNamedTypeInfo(DbgEngDebugger debugger, ulong moduleBase, uint typeId, SymTag symTag, DbgTarget target) : this(debugger, moduleBase, typeId, symTag, null, null, target) { } // end constructor
protected DbgTypeInfo(DbgEngDebugger debugger, DbgModuleInfo module, uint typeId, SymTag symTag) : this(debugger, GetModBase(module), typeId, symTag, module.Target) { __mod = module; } // end constructor
private DbgNamedTypeInfo(DbgEngDebugger debugger, ulong moduleBase, uint typeId, SymTag symTag, string name, ulong?pSize, DbgTarget target) : base(debugger, moduleBase, typeId, symTag, target) { m_name = name; m_pSize = pSize; } // end constructor
public static DbgNamedTypeInfo GetNamedTypeInfo(DbgEngDebugger debugger, ulong moduleBase, uint typeId, SymTag symTag, DbgTarget target) { return(_EnsureIsNamed(GetTypeInfo(debugger, moduleBase, typeId, symTag, target))); }
} // end _LoadTypeInfo() public static DbgTypeInfo GetTypeInfo(DbgEngDebugger debugger, ulong moduleBase, uint typeId, SymTag symTag, DbgTarget target) { moduleBase = _AdjustModBase(moduleBase, typeId, target); return(GetTypeInfo(debugger, new DbgModuleInfo(debugger, moduleBase, target), typeId, symTag)); }
public static DbgTypeInfo GetTypeInfo(DbgEngDebugger debugger, DbgModuleInfo module, uint typeId, SymTag symTag) { DbgTypeInfo typeInfo; if (!_TryGetFromCache(module.BaseAddress, typeId, module.Target, out typeInfo)) { typeInfo = _LoadTypeInfo(debugger, module, typeId, symTag); _AddToCache(typeInfo); } return(typeInfo); }
} // end constructor protected DbgNamedTypeInfo(DbgEngDebugger debugger, DbgModuleInfo module, uint typeId, SymTag symTag, ulong size) : this(debugger, GetModBase(module), typeId, symTag, null, size, module.Target) { __mod = module; } // end constructor
protected DbgTypeInfo(DbgEngDebugger debugger, ulong moduleBase, uint typeId, SymTag symTag, DbgTarget target) : base(debugger) { m_modBase = moduleBase; TypeId = typeId; SymTag = symTag; if (null == target) { throw new ArgumentNullException("target"); } Target = target; m_symbolCookie = Target.GetSymbolCookie(moduleBase); } // end constructor
public DbgGeneratedTypeInfo(DbgEngDebugger debugger, ulong moduleBase, uint typeId, SymTag symTag, DbgTarget target) : base(debugger, moduleBase, typeId, symTag, target) { if (!IsDbgGeneratedType(typeId)) { throw new ArgumentException("The typeId does not look like a debugger-generated typeId to me.", "typeId"); } // // TODO: Dbgeng internally stores info about generated types in a // DBG_GENERATED_TYPE structure. Unfortunately, there is no way to get at that // information, so until they provide an API, this class is just a dummy // placeholder. // } // end constructor