CDT to debug communication route
In the Cbreakpointmanager class
protected voidsetBreakpointsOnTarget0 (icbreakpoint[] breakpoints) {//Add identifierString Pointtype=Breakpoint.getpointtype (); FileName=Convertpath (fileName). toosstring (); Icdifunctionlocation Location=cditarget.createfunctionlocation (fileName, function); Icdicondition condition=CreateCondition2 (breakpoint); Fbreakpointproblems.add (Breakpointproblems.reportunresolvedbreakpoint (breakpoint, GetDebugTarget (). GetName (), Getdebugtarget (). Getinternalid ()); if(BpManager2! =NULL) Cdibreakpoint= Bpmanager2.setfunctionbreakpoint (location, condition,true, breakpoints[i].isenabled (), Breakpoints[i].istemporary (), Breakpoint.getid (), Symbolfi Le, Pointtype); ..}
Target
/*** * Wangmin * Add type is tracepoint **/ Publicicdifunctionbreakpoint setfunctionbreakpoint (icdifunctionlocation location, icdicondition condition,BooleanDeferredBooleanEnabledBooleanTemp, string ID, string symbolfilepath,string pointtype)throwscdiexception {Breakpointmanager bmgr=( Session) getsession ()). Getbreakpointmanager (); returnBmgr.setfunctionbreakpoint ( This, location, condition, deferred, enabled, temp, ID, Symbolfilepath, pointtype); }
Breakpointmanager
/*** * wangmin Add type *@paramTarget *@paramLocation *@paramcondition *@paramDeferred *@paramenabled *@paramTemp *@paramID *@paramSymbolfilepath *@return * @throwscdiexception*/ Publicicdifunctionbreakpoint setfunctionbreakpoint (target target, icdifunctionlocation location, icdicondition Condition,BooleanDeferredBooleanEnabledBooleanTemp, string ID, string symbolfilepath,string typepoint)throwscdiexception {functionbreakpoint bkpt=NewFunctionbreakpoint (target, location, condition, enabled); //Bkpt.setid (ID); //Duyingze 20080802 All breakpoints use a uniform IDBkpt.setpointtype (Typepoint); Bkpt.setbpid (ID); Bkpt.setsymbolfilepath (Symbolfilepath); Setnewlocationbreakpoint (bkpt, deferred); returnbkpt; }
Note here that Functionbreakpoint is a subclass of Locationbreakpoint.
is also in Manager
Call MI. And a Mibreakpointcreatedevent event was created.
protected voidSetnewlocationbreakpoint (Locationbreakpoint bkpt,BooleanDeferredthrowscdiexception {target target=(Target) bkpt.gettarget (); Misession misession=target.getmisession (); Try{setlocationbreakpoint (BKPT); List blist=getbreakpointslist (target); Blist.add (BKPT); //Fire a created Event.mibreakpoint[] Mibreakpoints =bkpt.getmibreakpoints (); if(Mibreakpoints! =NULL&& mibreakpoints.length > 0) {misession.fireevent (NewMibreakpointcreatedevent (Misession, mibreakpoints[0].getnumber ())); } }
CDT Source Code Framework Analysis Transformation of Threading Objects add tags to differentiate breakpoints and track points