public void Dispose() { //if (procTracer != null) //{ // int nRef = System.Runtime.InteropServices.Marshal.ReleaseComObject(procTracer);//???FinalReleaseComObject??? // procTracer = null; //} TraceTransport.ReleaseProcTracer(id, ref procTracer); }
private void OnProcDebugCreate(CPProcEvArgs args) { IProjectChartPoints pPnts = Globals.processor.GetProjectChartPoints(Path.GetFileNameWithoutExtension(args.Name)); if (pPnts != null && pPnts.Count > 0) { TraceTransport.Open(); traceHandlers.Add(new CPTraceHandler(args.procId, args.Name)); cpTraceFlag = true; } }
private void OnProcDebugDestroy(CPProcEvArgs args) { CPTraceHandler tracer = traceHandlers.FirstOrDefault((h) => (h.id == args.procId)); if (tracer != null) { tracer.Dispose(); traceHandlers.Remove(tracer); tracer = null; if (traceHandlers.Count == 0) { TraceTransport.Close(); ICPTracerService traceServ; cpServProv.GetService <ICPTracerService>(out traceServ); traceServ.Show(); } } }
public CPTraceHandler(ulong _id, string name) { id = _id; ICPServiceProvider cpServProv = ICPServiceProvider.GetProvider(); ICPTracerService traceServ; cpServProv.GetService <ICPTracerService>(out traceServ); traceServ.RegProcTracer(_id, name, out localProcTracer); //Globals.outputWindow.GetPane(Microsoft.VisualStudio.VSConstants.OutputWindowPaneGuid.DebugPane_guid, out outputWindowPane); //if (outputWindowPane != null) // outputWindowPane.Activate(); if (TraceTransport.GetProcTracer(id, out procTracer)) { procTracer.OnRegElem += RegElem; procTracer.OnTrace += Trace; } }