예제 #1
0
        /// <summary>
        /// Creates a new ICorDebug instance, initializes it
        /// and sets the managed callback listener.
        /// </summary>
        /// <param name="codebugger">ICorDebug COM object.</param>
        /// <param name="options">The options.</param>
        internal CorDebugger(ICorDebug codebugger, CorDebuggerOptions options)
        {
            this.codebugger = codebugger;
            this.options    = options;

            this.codebugger.Initialize();
            this.codebugger.SetManagedHandler(new ManagedCallback(options));
        }
예제 #2
0
        internal CorAppDomain(ICorDebugAppDomain codomain, CorDebuggerOptions options)
            : base(codomain, options)
        {
            this.codomain = codomain;

            Char[] nameRaw = new Char[300];
            this.codomain.GetName((UInt32)nameRaw.Length, out var fetched, nameRaw);

            // fetched - 1 because of the ending 0
            name = new String(nameRaw, 0, (Int32)fetched - 1);
        }
예제 #3
0
 /// <summary>
 /// Gets the process from process collection (if it was already
 /// created) or creates a new instance of the CorProcess class.
 /// </summary>
 /// <param name="coproc">The coproc.</param>
 /// <param name="options">The options.</param>
 /// <returns>CorProcess instance.</returns>
 internal static CorProcess GetOrCreateCorProcess(ICorDebugProcess coproc, CorDebuggerOptions options)
 {
     lock (processes)
     {
         processes.TryGetValue(coproc, out var proc);
         if (proc == null)
         {
             proc = new CorProcess(coproc, options);
             processes.Add(coproc, proc);
         }
         return(proc);
     }
 }
예제 #4
0
 internal CorAppDomain(ICorDebugAppDomain codomain, CorDebuggerOptions options)
     : base(codomain, options)
 {
     this.codomain = codomain;
 }
예제 #5
0
파일: CorProcess.cs 프로젝트: tylike/mindbg
 /// <summary>
 /// Creates a new ICorDebugProcess wrapper.
 /// </summary>
 /// <param name="coprocess">COM process object</param>
 /// <param name="options">The options.</param>
 private CorProcess(ICorDebugProcess coprocess, CorDebuggerOptions options)
     : base(coprocess, options)
 {
 }
예제 #6
0
 /// <summary>
 /// Initializes an instance of the Wrapper class.
 /// </summary>
 /// <param name="value">COM object to wrap</param>
 protected WrapperBase(Object value, CorDebuggerOptions options)
 {
     Debug.Assert(value != null);
     this.comobject = value;
     this.options   = options;
 }
예제 #7
0
 /// <summary>
 /// Creates an instance of the controller.
 /// </summary>
 /// <param name="cocntrl">ICorDebugController instance</param>
 internal CorController(ICorDebugController cocntrl, CorDebuggerOptions options)
     : base(cocntrl, options)
 {
     this.cocntrl = cocntrl;
 }
예제 #8
0
파일: CorFrame.cs 프로젝트: tylike/mindbg
 internal CorFrame(ICorDebugFrame coframe, CorDebuggerOptions options)
     : base(coframe, options)
 {
     this.coframe = coframe;
 }
예제 #9
0
 internal CorFunction(ICorDebugFunction cofunc, CorDebuggerOptions options)
     : base(cofunc, options)
 {
     this.cofunc = cofunc;
 }
예제 #10
0
 internal CorCode(ICorDebugCode cocode, CorDebuggerOptions options)
     : base(cocode, options)
 {
     this.cocode = cocode;
 }
예제 #11
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CorFunctionBreakpoint"/> class.
 /// </summary>
 /// <param name="cobreakpoint">The cobreakpoint.</param>
 internal CorFunctionBreakpoint(ICorDebugFunctionBreakpoint cobreakpoint, CorDebuggerOptions options)
     : base(cobreakpoint, options)
 {
     this.p_cobreakpoint = cobreakpoint;
 }
예제 #12
0
 internal CorBreakpoint(ICorDebugBreakpoint cobreakpoint, CorDebuggerOptions options)
     : base(cobreakpoint, options)
 {
     this.cobreakpoint = cobreakpoint;
 }
예제 #13
0
 internal CorException(CorAppDomain appDomain, ICorDebugValue exception, CorDebuggerOptions options)
     : base(exception, options)
 {
 }
예제 #14
0
 internal ManagedCallback(CorDebuggerOptions options)
 {
     this.p_options = options;
 }
예제 #15
0
 /// <summary>
 /// Initializes new instance of the thread object.
 /// </summary>
 /// <param name="cothread">COM thread representation.</param>
 /// <param name="options">The options.</param>
 internal CorThread(ICorDebugThread cothread, CorDebuggerOptions options)
     : base(cothread, options)
 {
     this.cothread = cothread;
 }
예제 #16
0
 /// <summary>
 /// Creates new instance of the CorModule class.
 /// </summary>
 /// <param name="comodule">ICorDebugModule instance</param>
 internal CorModule(ICorDebugModule comodule, CorDebuggerOptions options)
     : base(comodule, options)
 {
     this.comodule = comodule;
 }
예제 #17
0
 internal CorChain(ICorDebugChain chain, CorDebuggerOptions options)
     : base(chain, options)
 {
     m_chain = chain;
 }