internal UnloadDllNativeEvent(
     NativePipeline pipeline,
     ref DebugEventHeader header,
     ref DebugEventUnion union)
     : base(pipeline, ref header, ref union)
 {
 }
Пример #2
0
 internal DllBaseNativeEvent(
     NativePipeline pipeline,
     ref DebugEventHeader header,
     ref DebugEventUnion union
 )
     : base(pipeline, ref header, ref union)
 {
 }
 internal OutputDebugStringNativeEvent(
     NativePipeline pipeline,
     ref DebugEventHeader header,
     ref DebugEventUnion union)
     : base(pipeline, ref header, ref union)
 {
     this.ContinueStatus = NativeMethods.ContinueStatus.DBG_CONTINUE;
 }
Пример #4
0
 internal ExitProcessDebugEvent(
     NativePipeline pipeline,
     ref DebugEventHeader header,
     ref DebugEventUnion union
 )
     : base(pipeline, ref header, ref union)
 {
 }
Пример #5
0
 internal ExceptionNativeEvent(
     NativePipeline pipeline,
     ref DebugEventHeader header,
     ref DebugEventUnion union
     )
     : base(pipeline, ref header, ref union)
 {
 }
Пример #6
0
 internal CreateThreadNativeEvent(
     NativePipeline pipeline,
     ref DebugEventHeader header,
     ref DebugEventUnion union
     )
     : base(pipeline, ref header, ref union)
 {
     // OS will close the thread handle when the ExitThread event is processed.
 }
Пример #7
0
 internal LoadDllNativeEvent(
     NativePipeline pipeline,
     ref DebugEventHeader header,
     ref DebugEventUnion union
 )
     : base(pipeline, ref header, ref union)
 {
     Process.AddModule(new NativeDbgModule(Process, ReadImageName(), BaseAddressWorker, union.LoadDll.hFile));
 }
Пример #8
0
 internal CreateThreadNativeEvent(
     NativePipeline pipeline,
     ref DebugEventHeader header,
     ref DebugEventUnion union
     )
     : base(pipeline, ref header, ref union)
 {
     // OS will close the thread handle when the ExitThread event is processed.
 }
Пример #9
0
 internal OutputDebugStringNativeEvent(
     NativePipeline pipeline,
     ref DebugEventHeader header,
     ref DebugEventUnion union
 )
     : base(pipeline, ref header, ref union)
 {
     // On some platforms (Win2K), OutputDebugStrings are really exceptions that need to be cleared.
     this.ContinueStatus = NativeMethods.ContinueStatus.DBG_CONTINUE;
 }
Пример #10
0
        // We'd like this to be protected too
        internal NativeEvent(
            NativePipeline pipeline,
            ref DebugEventHeader header,
            ref DebugEventUnion union
            )
        {
            m_pipeline = pipeline;

            // Copy over
            m_header = header;
            m_union = union;
        }
Пример #11
0
        internal CreateProcessDebugEvent(
            NativePipeline pipeline,
            ref DebugEventHeader header,
            ref DebugEventUnion union
        )
            : base(pipeline, ref header, ref union)
        {
            Process.InitHandle(union.CreateProcess.hProcess);

            // Module name of main program is unavailable.
            Process.AddModule(new NativeDbgModule(Process, "<main program>", union.CreateProcess.lpBaseOfImage, union.CreateProcess.hFile));
        }
Пример #12
0
        internal CreateProcessDebugEvent(
            NativePipeline pipeline,
            ref DebugEventHeader header,
            ref DebugEventUnion union
        )
            : base(pipeline, ref header, ref union)
        {
            Process.InitHandle(union.CreateProcess.hProcess);

            // Module name of main program is unavailable.
            Process.AddModule(new NativeDbgModule(Process, "<main program>", union.CreateProcess.lpBaseOfImage, union.CreateProcess.hFile));
        }
Пример #13
0
        // Builder, returns the proper derived event object
        internal static NativeEvent Build(
            NativePipeline pipeline,
            ref DebugEventHeader header,
            ref DebugEventUnion union
            )
        {
            NativeDbgProcess process = pipeline.GetOrCreateProcess((int)header.dwProcessId);
            switch (header.dwDebugEventCode)
            {
                case NativeDebugEventCode.CREATE_PROCESS_DEBUG_EVENT:                    
                    return new CreateProcessDebugEvent(pipeline, ref header, ref union);

                case NativeDebugEventCode.EXIT_PROCESS_DEBUG_EVENT:
                    return new ExitProcessDebugEvent(pipeline, ref header, ref union);

                case NativeDebugEventCode.EXCEPTION_DEBUG_EVENT:
                    return new ExceptionNativeEvent(pipeline, ref header, ref union);

                case NativeDebugEventCode.LOAD_DLL_DEBUG_EVENT:
                    return new LoadDllNativeEvent(pipeline, ref header, ref union);

                case NativeDebugEventCode.UNLOAD_DLL_DEBUG_EVENT:
                    return new UnloadDllNativeEvent(pipeline, ref header, ref union);

                case NativeDebugEventCode.OUTPUT_DEBUG_STRING_EVENT:
                    return new OutputDebugStringNativeEvent(pipeline, ref header, ref union);

                case NativeDebugEventCode.CREATE_THREAD_DEBUG_EVENT:
                    return new CreateThreadNativeEvent(pipeline, ref header, ref union);

                case NativeDebugEventCode.EXIT_THREAD_DEBUG_EVENT:
                    return new ExitThreadNativeEvent(pipeline, ref header, ref union);

                default:
                    return new NativeEvent(pipeline, ref header, ref union);

            }
        }
Пример #14
0
 internal ExitThreadNativeEvent(
     NativePipeline pipeline,
     ref DebugEventHeader header,
     ref DebugEventUnion union
     )
     : base(pipeline, ref header, ref union)
 {
 }
Пример #15
0
 internal OutputDebugStringNativeEvent(
     NativePipeline pipeline,
     ref DebugEventHeader header,
     ref DebugEventUnion union
 )
     : base(pipeline, ref header, ref union)
 {
     // On some platforms (Win2K), OutputDebugStrings are really exceptions that need to be cleared.
     this.ContinueStatus = NativeMethods.ContinueStatus.DBG_CONTINUE;
 }
Пример #16
0
        // Builder, returns the proper derived event object
        internal static NativeEvent Build(
            NativePipeline pipeline,
            ref DebugEventHeader header,
            ref DebugEventUnion union
            )
        {
            NativeDbgProcess process = pipeline.GetOrCreateProcess((int)header.dwProcessId);
            switch (header.dwDebugEventCode)
            {
                case NativeDebugEventCode.CREATE_PROCESS_DEBUG_EVENT:
                    return new CreateProcessDebugEvent(pipeline, ref header, ref union);

                case NativeDebugEventCode.EXIT_PROCESS_DEBUG_EVENT:
                    return new ExitProcessDebugEvent(pipeline, ref header, ref union);

                case NativeDebugEventCode.EXCEPTION_DEBUG_EVENT:
                    return new ExceptionNativeEvent(pipeline, ref header, ref union);

                case NativeDebugEventCode.LOAD_DLL_DEBUG_EVENT:
                    return new LoadDllNativeEvent(pipeline, ref header, ref union);

                case NativeDebugEventCode.UNLOAD_DLL_DEBUG_EVENT:
                    return new UnloadDllNativeEvent(pipeline, ref header, ref union);

                case NativeDebugEventCode.OUTPUT_DEBUG_STRING_EVENT:
                    return new OutputDebugStringNativeEvent(pipeline, ref header, ref union);

                case NativeDebugEventCode.CREATE_THREAD_DEBUG_EVENT:
                    return new CreateThreadNativeEvent(pipeline, ref header, ref union);

                case NativeDebugEventCode.EXIT_THREAD_DEBUG_EVENT:
                    return new ExitThreadNativeEvent(pipeline, ref header, ref union);

                default:
                    return new NativeEvent(pipeline, ref header, ref union);

            }
        }
Пример #17
0
        // We'd like this to be protected too
        internal NativeEvent(
            NativePipeline pipeline,
            ref DebugEventHeader header,
            ref DebugEventUnion union
            )
        {
            m_pipeline = pipeline;

            // Copy over
            m_header = header;
            m_union = union;
        }
Пример #18
0
 internal LoadDllNativeEvent(
     NativePipeline pipeline,
     ref DebugEventHeader header,
     ref DebugEventUnion union
 )
     : base(pipeline, ref header, ref union)
 {
     Process.AddModule(new NativeDbgModule(Process, ReadImageName(), BaseAddressWorker, union.LoadDll.hFile));
 }