TheCedarDebugToolVersion4.2Releaseas[Indigo]Documentation>DebugTool.tioga,.pressCamefrom[Indigo]Manual>DebugTool.tioga,.pressLasteditedbyBirrellonJune14,19832:24pmbyHorningonJune7,19834:23pmAbstract:ThistoolappearsautomaticallyinCoCedar,andmaybecreatedinthenormalCedarenvironmentwiththe"Debug"command.Thetoolcanbesetuptoinspecttheenvironmentinwhichitisrunning,ortoteledebuganinstanceofCedarrunningonanothermachine.InCoCedar,thetoolcanbeusedtolookatthenormalCedarenvironmentwhichhasbeenstoppedbyoutloadingittodisk.Thetoolallowsyoutoinspectandmodifythestateofparallelprocesses,andtoenumeratethesetofloadedpackagesandmodules.XEROXXeroxCorporationPaloAltoResearchCenter3333CoyoteHillRoadPaloAlto,California94304DRAFTForInternalXeroxUseOnlyDRAFTp ^k`q Yur TosT-1r R LsR*0r Q0 sQ0( F#'OW~( $s't HsDH!Hp & '.g1V4{6;=@6E+ GD vB%(+.13|57<?V G EJw3 "(q*.]35;A]B C `=@ #|(-R 6 :=AG BN S*,"%',/47G:<B @ !(;+)u 8s(8-0 (6,I/X5(57,14(3,I/ 6gq JCY ',014.TVm$^THECEDARDEBUGTOOL2TheCedarDebugToolIntroductionThistoolappearsautomaticallyinCoCedar,whereitisinitiallysetuptolookatthenormalCedarenvironment,whichwasoutloadedtodiskwhenyouswappedtoCoCedar.Thetoolcanbecreatedwiththe"Debug"command.Ifyougivethecommandwithnoarguments,itcreatesatoolforinspectingtheenvironmentinwhichthetoolisexecuting.Ifyougivethecommandwiththenameofanothermachineasargument,itcreatesatoolforteledebuggingthatmachine.Theenvironmentwhichthetoolislookingatiscalledthetool's"client".Mostofthetoolisconcernedwithlookingattheparallelprocessesoftheclient;therearealsoafewfacilitiesnotrelatedtoprocesses.Non-process-relatedfacilitiesAtthebottomrightcornerofthemenuarethe"Screen"and"Kill"commands.Thesehavenoeffectiftheclientisthecurrentlyexecutingenvironment.InCoCedar,the"Screen"commandswapsbacktotheclienttoallowyoutolookattheclientdisplay(forabout20seconds,oruntilyoupressthe"swat"key);whenteledebugging,thgiscausesthemachinewhichisbeingdebuggedtoshowtheclient'sscreen.InCoCedar,the"Kill"commandissimilartopressingthebootbutton;whenteledebugging,itissimilartopressingthebootbuttononthemachinewhichisbeingdebugged.Atthebottomleftofthemenuare"ListLoadState"and"ListContext"."ListLoadState"enumeratesthecurrentlyloadedconfigurationsintheclient.Ifyoutypethenameofaconfigurationasthetextbesidethe"Context"button,thenclick"ListContext",itwillenumeratethemodulesinthatconfiguration.ProcessesTheprocessfacilitiesarebasedontheconceptof"freezing"aprocessatsomepointonitscallstack.Thismeansthattheprocesscontinuesexecutionnormally,butwhenitreturnstothatpointonitscallstack,theprocesswillstopexecutinguntilitisthawed.Ofcourse,thereisthespecialcasewhereyoufreezetheprocessatitscurrentframe,soitstopsexecutingimmediately.TheDebugToolallowsyoutofreezeandthawprocesses,andtolookatthefrozenframesofprocesses(evenwhiletherestoftheprocessisstillexecuting).Thereisnowaytolookataprocess(orpartofaprocess)thatisn'tfrozen.Therearefour"Freeze"buttons:"All",whichfreezesallprocessesattheircurrentframe;"Ready",whichfreezesallreadyprocessesattheircurrentframe(i.e.processesthataren'tsuspendedforamonitorlock,conditionvariablewaitorfault);"Process"whichfreezestheprocesswhosenumber(PSBindex)isgiveninoctalasthetextbesidethe"PsbIndex"buttonontherightoftheviewer.Finally,the"Context"buttonwillfreezeallprocessesassociatedwithaperticularconfigurationormodule,freezingthemattheboundaryofthecontext.Moreprecisely,"Context"enumeratesallprocesses,anddetermineseveryprocessthathassomewhereonitscallstackaframewithinthespecifiedmoduleorconfiguration;eachsuchprocessisfrozenatthepointwherecontrolwouldreturntowithinthemoduleorconfiguration;anyprocesscurrentlyexecuting(orwaitingorfaulted)withinthemoduleorconfigurationstopsexecutingimmediately.IfyouclicktheRIGHTmousebuttononthe"FreezeContext"button,thentheentirecallstackofeachsuchprocessisfrozen.ExaminingfrozenprocessesForeachprocessthatisfrozen,theDebugTooldisplaysthreebuttons,labelledwith"Adjust","Thaw",andadescriptionoftheprocess'scurrentstate.Thestatesaysthingslike"ready"or"waitingCV"or"pageFault",followedbythenameoftheframeatwhichtheprocessisfrozenandthepriorityoftheprocess.Thereisnowaytolookatnon-frozenframesoftheprocess.The"ready","waitingCV",etc.arewrappedinparenthesesiftheprocess'scurrentframeisnotfrozen(i.e.iftheprocessisstillexecuting).IfyouclicktheLEFTmousebuttonontheprocess-statebutton,DebugToolgivesabriefsummaryofCEDAR4.2v!jgw"Qg#7gv$Zgw%Xgv)gw*'gv-mgw.UgsHDgx ^ W&y [ v XX !',-\.3579<>Y@Ew V LR\!#'*G/17:=D?AFt U  F(X "K(+- 46:;>{@ G/ Sb  $&(+-4?7O9=Z? D  Q U &)x/J2 :>!@wC:D P  6O!#&(.168A:?E{G/ Nl& "q'( y K= v GL8"z&}(+t1s4L8?D G F' R3% .s0_69!?E D 08G!#R%)l.046;=ACG/ B_ !&/(.2 3m70=s?BD A1].#% )+P036Q;D? H9 ? e!D#X%+W/r04<>@}ESG = fb]  }$ *c- 5> <?E <; As# %)b+5,z 569K<@|B : ")+1s3!5 y 7Dv 3t7 !#(* 12468};?ACKE 2N gC!(.G045:<|?YCEG 0 >&!1$%'u,.37'8;?BF / ^5{!#$(o. 69@E&G -X "$'3+0>28B<(@BEPG/ +P $!$&e)+;,w1]368m9?AD * `#',.469>C (b hFr"'`+E-36:aA C5DM & M}!(/,M03^8B<AEK % zq%!%v%%} # +A/2248^:S<AG/ #l# *)-H.w 4 =(>DN ! c5XK e$ *0 79 ?B  h1 "%()-1459>@ v :!v%p*.2$37:>@  u0,#%*.157 ?Cd ( aw((v >(!g($)+-28=j@BF  _IzNy 1v )!$M+1J5:@ Ce ;^ #o(+.C1X48:?A_  [M!W#%\)H*.1/57Z;>A@EG/  d_,k &f*,.36?B  Vw!  v   "% -(2 9k<>7AG&tw'r(++" +TVm$THECEDARDEBUGTOOL3theprocess'scallstack(fromthepointatwhichitisfrozen).IfyouclicktheRIGHTmousebuttonthere,DebugToolwillcreateanactionareaforthatprocess,whichallowsyoutolookatthefrozenpartsofthecall-stackinmoredetail.The"Thaw"buttonassociatedwithafrozenprocesswillun-freezetheentireprocess.IfyouclicktheLEFTmousebuttononthe"Adjust"button,itwillchangethepointatwhichtheprocess'scall-stackisfrozentobetheboundaryofthemoduleorconfigurationspecifiedinthetextfor"Context"attherightoftheviewer.CLickingtheRIGHTmousebuttontherewillfreezetheentirecallstackoftheprocess.Youcan'tthaworadjustaprocesswhileithasanactionareaproceedtheactionareafirst.They'rereallyfrozen!Ifyouresumeanoutloadedclient(forexample,byproceedingtheactionthatinvokedtheworld-swapdebugger)whilesomeprocessesarefrozen,theyreallyarefrozenwhentheclientresumes.Thiscanbeimportantwhendebuggingparallelcomputations,butitcanbedangerous.Inparticular,bewareofresumingtheclientwhilecriticalsystemprocessesarefrozen!StyleYouwillfindtheDebugToolmorepleasantifyouusethefullpowerofitsprocessenumerationfacilities.Youshouldveryrarelyneedtouse"FreezeAll".Almostalways,youknowwhatsetofmodulesorconfigurationsyou'redebugging;ifyoufreezejusttheprocessesassociatedwiththem,DebugToolwilldothefilteringforyouandyouwon'thavesomuchtroubledecidingwhatprocesstolookat.BugsTherearestillseveralbugs.Pleaseletanimplementorknowifsomethingdoesn'twork.IfCoCedarbreaks,however,youstillhaveachancetolookatyouroutloadedclient.IfCoCedarhasbeeninvokedbyaclientandyouhaven'tresumedtheclientatall(e.g.UserScreen),youcanrestartthedebuggerwithoutlosingtheclientoutloadbybootingyourDebuggervolumewiththe"W"switch.(CoCedardoesthisautomaticallyinthesituationwhereCoPilotsays"inloadedtwice,clicktoboot").Alternatively,youcanreinstallCoCedarbybootingyourdebuggervolumewithnoswitches,inwhichcaseafteroutloadingitselfthedebuggerwillbootyourphysicalvolume.SymboltablesJustlikeCedar,CoCedaroftenmanagestofindthecorrectsymboltableautomaticallyusingtheversionmaps.However,thisisunlikelytobetrueforthemodulesyou'redebugging.CoCedarwillnotautomaticallylookatfilesontheclientvolumeyou'llneedtofetchthemexplicitlyontothedebuggervolumeusingBringOver,ortheClientFileTool.CEDAR4.2v!jgw"Qg#7gv$Zgw%Xgv)gw*'gv-mgw.UgsHDgv _' Do !#1'7().0p36Rw8_'9~_'v<_'>_'A+E ]H L!X#&+/4,68;=@DZG [ w n,z}$){ 03X49>@G/ Z1 'wBZ1Z1v Z1!Z1% )+.38:?<AD'G X x8 :"#%(5.z0B279 BG V D+M "'-w/V0Vv4-V5WV8<@mCG U; l5 H#'(,. 267:p B "$)+.^4| ; >DBF sBBC 4(:(U"$')T,378>u@DM 2 U8!$')+. 7"9<AC 0+$'.4368j;@#F_ /2 "'*0479>T F - jXGE!s'o,L/Z1S78<?B + H\$y (v %Fp &[()+6-2f7M: CgG/ #"e$&(+C-367v >DgG ! d"E +/G04r8 =A!C P S&tw'r(++"TVm$ TIMESROMAN TIMESROMAN TIMESROMANY TIMESROMAN TIMESROMANLOGO HELVETICA HELVETICA HELVETICA HELVETICA HELVETICA%  j/HDebugTool.tioga14-Jun-83 15:02:32