Exemplo n.º 1
0
 public DbgAppDomainImpl(DbgRuntimeImpl runtime, DbgInternalAppDomain internalAppDomain, string name, int id)
 {
     this.runtime      = runtime ?? throw new ArgumentNullException(nameof(runtime));
     InternalAppDomain = internalAppDomain ?? throw new ArgumentNullException(nameof(internalAppDomain));
     this.name         = name;
     this.id           = id;
 }
Exemplo n.º 2
0
        public override DbgEngineAppDomain CreateAppDomain <T>(DbgInternalAppDomain internalAppDomain, string name, int id, DbgEngineMessageFlags messageFlags, T data, Action <DbgEngineAppDomain> onCreated)
        {
            if (disposed)
            {
                throw new ObjectDisposedException(nameof(DbgObjectFactoryImpl));
            }
            var appDomain = new DbgAppDomainImpl(runtime, internalAppDomain, name, id);

            if (data != null)
            {
                appDomain.GetOrCreateData(() => data);
            }
            var engineAppDomain = new DbgEngineAppDomainImpl(appDomain);

            onCreated?.Invoke(engineAppDomain);
            owner.Dispatcher.BeginInvoke(() => owner.AddAppDomain_DbgThread(runtime, appDomain, messageFlags));
            return(engineAppDomain);
        }
Exemplo n.º 3
0
 /// <summary>
 /// Creates an app domain. The engine has paused the program.
 /// </summary>
 /// <typeparam name="T">Type of data</typeparam>
 /// <param name="internalAppDomain">App domain object created by the debug engine</param>
 /// <param name="name">New <see cref="DbgAppDomain.Name"/> value</param>
 /// <param name="id">New <see cref="DbgAppDomain.Id"/> value</param>
 /// <param name="messageFlags">Message flags</param>
 /// <param name="data">Data to add to the <see cref="DbgAppDomain"/> or null if nothing gets added</param>
 /// <param name="onCreated">Called right after creating the app domain but before adding it to internal data structures. This can be null.</param>
 /// <returns></returns>
 public abstract DbgEngineAppDomain CreateAppDomain <T>(DbgInternalAppDomain internalAppDomain, string name, int id, DbgEngineMessageFlags messageFlags, T data, Action <DbgEngineAppDomain> onCreated = null) where T : class;
Exemplo n.º 4
0
 /// <summary>
 /// Creates an app domain. The engine has paused the program.
 /// </summary>
 /// <param name="internalAppDomain">App domain object created by the debug engine</param>
 /// <param name="name">New <see cref="DbgAppDomain.Name"/> value</param>
 /// <param name="id">New <see cref="DbgAppDomain.Id"/> value</param>
 /// <param name="messageFlags">Message flags</param>
 /// <returns></returns>
 public DbgEngineAppDomain CreateAppDomain(DbgInternalAppDomain internalAppDomain, string name, int id, DbgEngineMessageFlags messageFlags) =>
 CreateAppDomain <object>(internalAppDomain, name, id, messageFlags, null, null);