User Guide Amendment History: Revision Date Amended Name Description Draft July 2006 Alex Leggett nitial version !"! January 200# $ony %orter &ro'ser de(ug section !"2 )e(ruary 200# Dave *earing Add +&A,- environment varia(le setting and additional example for . varia(les" No part of t/is document may (e reproduced or transmitted in any form or (y any means0 electronic or mec/anical0 for any purpose0 'it/out t/e express 'ritten permission of $-1-N2, Holdings N3" 4opyrig/t 2005 $-1-N2, Holdings N3" All rig/ts reserved" De(ugging $26 ,erver 7Ho' $o7 *uide Table of Contents $-1-N2, $26 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ! De(ugging $26 ,erver 7Ho' $o7 *uide """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ! 8ser *uide """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ! -xecutive ,ummary """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 9 ,upport """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 9 De(ugging 2ptions """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 6 8sing t/e De(ugger in $26 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" # 8seful RAD De(ugger 4ommands """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" !! $-1-N2, $26 8ser *uide %age 2 of !5 De(ugging $26 ,erver 7Ho' $o7 *uide Ee!utive Su""ar# $/is document gives a (rief introduction to t/e met/ods '/ic/ can (e used to trac: do'n logical and data;related errors in T24" $/is mainly concerns t/e use of t/e <RAD De(ugger=0 a command;line tool used for de(ugging +&A,- routines at runtime> and 3isual De(ugger0 '/ic/ is (ased on t/e RAD De(ugger" $/e use of ,-A$0 J2&"$1-, and ot/er useful files are also discussed /ere" Su$$ort $ec/nical ssues 'it/ RAD De(ugger ? eg commands not 'or:ing ? consult +&A,- support $ec/nical ssues 'it/ 3isual De(ugger and all ot/er issues ? eg not displaying source code ? c/ec: $$, and create ,ervice Report as necessary $-1-N2, $26 8ser *uide %age 9 of !5 De(ugging $26 ,erver 7Ho' $o7 *uide Debugging O$tions $/e approac/es ta:en to trac: do'n errors in an application can vary almost as muc/ as t/e types of pro(lem found" Ho'ever0 some of t/e most useful general approac/es are given /ere" @/ile it may (e tempting sometimes to start from t/e (eginning of t/e application and step t/roug/ t/e code line (y line0 t/is can (e a time;consuming and frustrating approac/" n many cases0 it 'ill lead to t/e de(ugger (ecoming out of step 'it/ t/e source code after some time due to t/e large num(er of called routines in T24 and t/e necessity of compiling routines in your account in order to (e a(le to de(ug t/em" T24 8pgrades deliver t/e o(+ect code in pre;compiled li(raries <glo(us(in= and <glo(usli(=0 and unless t/ese are recompiled t/e RAD de(ugger can sometimes lose trac: of '/ic/ line in t/e source code matc/es t/e o(+ect code (eing executed" A (etter approac/ is to try to identify t/e li:ely areas t/at could (e causing t/e pro(lem0 and to loo: at t/e state of all relevant varia(les" $/is could (e done eit/er (y manual intervention using a de(ugger or (y adding de(ugging code in '/ic/ data is 'ritten to a log file" $/is is (est done using a straig/tfor'ard +&A,- <@R$-= statement0 rat/er t/an calling )"@R$- as you are not t/en su(+ect to t/e vagaries of cac/ing and 'ill t/erefore (e guaranteed to see t/e current data appearing on file no'" 2nce analysis of t/e data /as (een carried out0 it 'ill still often (e necessary to loo: at t/e seAuence of code execution via a de(ugger Beit/er t/e RAD de(ugger or 3isual De(uggerC" $/e 'ay t/is is used 'it/in T24 depends on '/at you are trying to de(ug" $-1-N2, $26 8ser *uide %age 6 of !5 De(ugging $26 ,erver 7Ho' $o7 *uide %inding t&e $roble" f t/e pro(lem is /appening during validation of record entry0 t/en t/e (est place to start to loo: is during t/e 4H-4D")-LD, andEor 4R2,,3AL stages of processing" $/e diagram (elo' s/o's t/e process flo' for t/e standard T24 $emplate: -nter Application Define %arameters Just %arametersF Call Matrix Alter 4/ec: D Call Function Display 4/ec: )unction Read Record nitialise Call Matrix Update $erminator 1ain %rogram Loop is 1essage 7R-$7 s 1essage Repeat s )unction 7-7 or 7L7 Ne' )unctionF 1ain %rogram Loop 4/ec: Reversal 4/ec: Delete ncrement )ield %osition 4/ec: )ields Process Display 4/ec: Record f )unction G 7D7 s 1essage G 73AL7 Has 1essage (een set nput 1odeF $erminator f )unction G 7R7 &efore Aut/ @rite Call Auth Write After Aut/ @rite Aut/ 4ross 3al s 1essage G 7A8$7 No Hes Hes No No Hes No No Hes Hes s 1essage G I-RR2RI Hes No Hes No Hes No Hes Hes Hes )ield Navigation Loop )ield Navigation Loop Get Function/Record ID Field Input Field Display 1esagge Loop 1esagge Loop Hes No No 4ross 3al &efore 8nAut/ @rite Call UnAuth Write After 8nAut/ @rite $emplateE*2,8& External Suroutine 2verrides N2 Figure 1 Flow-Chart showing Execution of the T24 Template Note t/at t/ere are some older applications 'it/in T24 t/at do not follo' exactly t/e same logic" $/ey also may not /ave t/e )-LD"D-)N$2N,0 4H-4D")-LD,0 4R2,,3AL or 23-RRD-, functionality separated into separate su(routines" f you are not sure '/at is /appening0 and T24 appears to </ang= t/en it may (e useful to use t/e ,py ,ession on T24 Dev,tudio to examine t/e last reAuest and response as a starting point" Also0 al'ays c/ec: to ma:e sure t/at t/e o(+ect code (eing executed (elongs to t/e source code you $HND /as (een compiled" n order to c/ec: '/at is (eing run0 use t/e <+s/o'= command" )or instance0 to see '/at version of )J"4H-4D")-LD, is running0 enter: jshow c FX.CHECK.FIELDS $-1-N2, $26 8ser *uide %age 5 of !5 De(ugging $26 ,erver 7Ho' $o7 *uide %ro(lems 'it/ 3ersions are often due to A%s attac/ed to t/e 3ersion 'it/in t/e follo'ing fields: AUT.NEW.CONTENT ? Routine to automate field entry VALIDATION.RTN ? Routine to validate a field INPUT"ROUTINE ? Routine run on commit of record0 (efore file 'rites Bpre;aut/orisationC AUTH"ROUTINE ? Routine run on aut/orisation of record ID"RTN ? Routine to validate item;id CHECK"REC"RTN ? Routine to control field attri(utes AFTER"UNAU"RTN ? Routine run on commit of record0 after file 'rites Bpre;aut/orisationC BEFORE"AUTH"RTN ? Routine run on aut/orisation of record0 (efore file 'rites WEB"VAL"RTN ? Java -&"A% record routine to validate on @e( ,erver %ro(lems 'it/ enAuiries are usually due to A%s attac/ed to t/e enAuiry" $/e fields containing t/ese are: BUILD.ROUTINE ? t/e routine '/ic/ (uilds t/e enAuiry data ENQUIRY.NAME ? t/e drilldo'n CONVERSION B'/en field content prefaced 'it/ <K=C ? post;processing of ra' data from file Note t/at t/ere may also (e ;Descriptors in t/e ,tandard ,election record0 '/ic/ invo:e +&A,- routines" $-1-N2, $26 8ser *uide %age 6 of !5 De(ugging $26 ,erver 7Ho' $o7 *uide Using t&e Debugger in T24 De(ugging Applications in T24 is fairly straig/tfor'ard0 and can (e done using eit/er t/e 3isual De(ugger or t/e RAD de(ugger" f you are de(ugging <4lassic=0 it is simply a matter of setting a D-&8* statement '/erever it is reAuired and t/en 'aiting until you /it it" Hou can also0 of course press L4trlM4N to invo:e t/e de(ugger at any time" De(ugging standard T24 using (ro'ser0 /o'ever0 reAuires a little more initial 'or:" Setting u$ 'isual Debugger n order to use 3isual De(ugger0 you 'ill need to /ave installed T24 $ool&ox and set it up correctly Bsee t/e T24 ,etup0 T24 $ool&ox and T24 Dev,tudio <Ho' $o= *uidesC" f $4,erver /as (een running since (efore t/e D-&8* statement 'as inserted into t/e code and t/e code compiled0 it s/ould (e <reset= to ensure t/at it pic:s up t/e latest version of t/e o(+ect code" $/e 3isual De(ugger s/ould (e started (efore t/e application is launc/ed0 so t/at it is listening (efore t/e D-&8* statement is /it: Figure 2 Visual Debugger waiting for a DEB! con"ition $-1-N2, $26 8ser *uide %age # of !5 De(ugging $26 ,erver 7Ho' $o7 *uide Setting u$ a Debugger Session f you 'ould prefer to use t/e RAD De(ugger rat/er t/an t/e 3isual De(ugger0 you 'ill need to set up a $-LN-$ session '/ic/ points to t/e de(ugger port" Hou must also /ave t/e follo'ing environment varia(le set in your unix profile0 export J&A,-OD-&8*O%%-G! As 'it/ 3isual De(ugger0 you 'ill need to <reset= t/e $4,erver after compiling t/e code containing t/e D-&8* statement0 ot/er'ise $4,erver 'ill not see it" $/e $-LN-$ session s/ould (e configured so t/at t/e ,erver is t/e same as t/e server on '/ic/ $4,erver is running0 and t/e port num(er matc/es t/e de(ugger port" $/e de(ugger port is displayed '/en $4,erver starts up:
Starting deamons ... - Admin Console started on ort ! "#$%# - De&'gger deamon started on ort ! "#$%( - S) deamon started on ort ! "#$%* - +elnet deamon started on ort ! "#$%, n t/is case0 since $4,erver 'as started up on Dev;%series!0 all t/at needs to (e done is to create a ne' $-LN-$ session0 pointing to Dev;%series! port num(er 50#P2" f t/e $-LN-$ session is correctly set up and pointing to t/e de(ugger port0 it s/ould loo: somet/ing li:e t/is: Figure # Debugger $ession $-1-N2, $26 8ser *uide %age P of !5 De(ugging $26 ,erver 7Ho' $o7 *uide Debugging (obs in t&e Close of )usiness $/e 4lose of &usiness processing in T24 can eit/er (e run automatically or in de(ug mode Bsometimes referred to as <interactive mode=C" ,ee t/e 42& <Ho' $o= *uide for furt/er information" n order to de(ug 4lose of &usiness it must (e run 42& in de(ug mode0 'it/ a limited num(er of agents set during t/e de(ugging process" Note t/at t/is can (e done (y setting t/e WORK.PROFILE field of t/e TSA.SERVICE COB record to t/e preferred TSA.WORKLOAD.PROFILE: Figure 4 Changing the number of agents while C%B is running Note t/at once a D-&8* statement is /it0 t/e output of t/e RAD de(ugger Band t/e inputC 'ill /appen in t/e 'indo' of '/ic/ever t,ABsC /it t/e D-&8* statement" $/e t,1 'ill also declare t/e agent to (e <dead= after a certain time and 'ill :eep prompting you to start up anot/er agent" 2(viously if you are still de(ugging0 t/at agent is still active0 and starting up anot/er agent to pic: up its t/read may confuse t/e issueQ $-1-N2, $26 8ser *uide %age R of !5 De(ugging $26 ,erver 7Ho' $o7 *uide Debugging )rowser *elated +ssues Due to issues 'it/ t/e 3isual De(ugger0 t/is is not recommended for general use (y t/e (ro'ser team" 8se instead a Reflections session on t/e de(ug port0 as s/o'n in t/e ,etting up a De(ugger ,ession" As soon as a de(ug statement is /it in t/e &ro'ser0 a de(ug prompt 'ill (e displayed in t/e Reflections session" &e a'are t/at you can=t (ac:space or use your cursor :eys ? so (e careful of starting 'it/ t/e letter <c= (y accident" Also '/en de(ugging using t/is met/od t/e first 2 prompts in t/e telnet session 'ill not 'or:0 see (elo'0 so /it return t'ice on initial entry to t/e de(ugger" Temenos Connecto BASIC De!"##e V$.%.&'$( )*e!"##est+t, DEBU- st+tement seen So"ce c.+n#e* to /sto+#e$/#0o!"s.+cco"nts/#0o!"s.+cc.$/*+12*.#e+2n#/*#*e1!/*#*e1!."n/BP/REPO 34&5 DEBU- 6BASE *e!"##e7,W 89W :: 89W 77 comm+n* 2s not +1+20+!0e 6BASE *e!"##e7,W W :: W 77 comm+n* 2s not +1+20+!0e 6BASE *e!"##e7,W W 34&( 34&; <77777777777777777777777777777777777777777777777777777777777777777777777 34&4 CHECK.RECORD= 34&> < V+02*+t2on +n* c.+n#es o? t.e Reco*. Set ERROR to $ 2? 2n eo. 34&5 DEBU- 34&@ IF R.NEWARP.RECORD.STATUSB C DIHLDD THEN E < CI'$33(;>4% s 34%3 -OSUB CLEAR.CHILD.TFN.IDS 34%$ END E < CI'$33(;>4% e 34%& IF R.NEWARP.CALCULATION.LINKB C DD THEN E< EN'$3333@;4 S 6BASE *e!"##e7, $o see t/e J1L (eing passed to t/e (ro'ser0 put a D-&8* at t/e top of 2),"R-S8-,$"1ANA*-R and vie' t/e $H-"1,* varia(le" $-1-N2, $26 8ser *uide %age !0 of !5 De(ugging $26 ,erver 7Ho' $o7 *uide Useful *,+D Debugger Co""ands 4aveat: ,ome of t/ese commands are not supported in 3isual De(ugger" At t/e time of 'riting t/is document t/ere is no official list of supported RAD commands for t/e latest version of t/e +&A,- RAD De(ugger0 /o'ever t/is document 'ill (e updated '/en suc/ details (ecome availa(le" Co""and S#nta 4ommand -xplanation Qcommand ,pa'n anot/er process and execute t/e command" $/e previous command t/us used can also (e recalled and executed (y t/e QQ command" L4trlMDN Display t/e next !! lines of source in t/e current file" Nn ,et t/e current display line to line nn in t/e current file and t/en display t/e line" Note t/at t/e program execution counter remains unc/anged0 it is only t/e display pointer t/at is c/anged" A command suc/ as s Bsee laterC 'ill correctly execute t/e next line in t/e programmed seAuence0 not t/e ne'ly displayed line" & Display all currently active (rea:points" ( T;tU nnT0fileU ,et a (rea:point at line nn in t/e current file or t/at specified (y t/e file modifier" f t/e !t option is specified t/en t/e (rea:point 'ill cause a display of all t/e trace varia(les rat/er t/an /alting t/e program" ( T;tU varname $/is form of t/e command 'ill cause t/e de(ugger to (e entered '/enever t/e contents of t/e specified varia(le are c/anged" 4 4ontinue execution of t/e program" d T;t(edU TVnnU Delete (rea:point andEor trace ta(le entries0 and 'ill normally prompt for confirmation" $/e t and s'itc/es refer to trace and (rea:points respectively" $/e " s'itc/ deletes all of t/e specified entries 'it/out prompting" $/e nn s'itc/ deletes t/e entry nn in t/e given trace or (rea:point ta(le0 also 'it/out prompting" $/e d and e s'itc/es respectively disa(le or ena(le t/e given entry 'it/out removing it from t/e ta(le" f TonWoffU A de(ug (rea:point is set for a filename c/ange" $/is (rea: can (e set to on or off" f t/e program is continued BC commandC t/e de(ugger 'ill (e entered t/e next time t/e source file c/anges" + T;gU $/e # command displays a complete /istory of (ot/ G$SU% and external su(routine calls" @/en issued 'it/out options t/e command 'ill only display information a(out t/e current program or su(routine" $/e !& Bglo(alC option 'ill s/o' a (rea:do'n of t/e entire application" p Tpat/listU Defines t/e list of directories and pat/names Bdelimited (y :C t/at t/e de(ugger 'ill t/en searc/ to find source codes" p 'it/out a pat/list displays t/e current %at/" s T;tTmUdU TnnU 4ontinue execution of +&4 code in single line steps (efore returning to de(ug" $/e value nn c/anges t/e num(er of lines executed (efore returning to de(ug" $/e !t s'itc/ is used to display t/e trace ta(le after every line executed0 rat/er t/an 'ait for entry to de(ug" $/e d s'itc/ sets a delay (efore executing eac/ line of code" ' is used to set t/e delay in seconds Bdefault is 5 deci;secondsC" , T;tTmUdU TnnU ,ame as c except t/is 'ill 7step over7 su(routine calls0 t/e code 'it/in t/e $-1-N2, $26 8ser *uide %age !! of !5 De(ugging $26 ,erver 7Ho' $o7 *uide su(routine 'ill not (e displayed" $ Display t/e current trace ta(le" t T;fgU expr Add t/e value specified (y expr to t/e trace ta(le" @/en de(ug is entered0 all t/e values in t/e ta(le are displayed" $/e ( s'itc/ is used to fully evaluate expr0 '/ilst t/e & s'itc/ extends t/e display of expr to all levels" v T;gmsrvU TexprU -valuate expr and display t/e result" $/e effects of t/e s'itc/es are: & to extend t/e display of expr to all data areas" ' to allo' varia(le modification 'it/in expr" @/en a varia(le is modified 'it/ t/e ' option (inary c/aracters may (e entered using t/e octal seAuence )nnn" $/e seAuence )*+* 'ould t/erefore (e replaced (y C,AR-./ in t/e modified varia(le" $/e seAuence )) evaluates to t/e single c/aracter ) and a seAuence suc/ as )x evaluates to t/e single c/aracter x Bi"e" t/e ) 'ill (e lostC" ' nn Display a 'indo' of source code" $/e default is R lines 'it/ 6 (efore and after t/e current one" $/e value nn is used to c/ange t/is parameter" Table 1 Debugger Comman"s Debugger *edire!tion and -i$es $/e de(ugger provides t/e a(ility to redirect t/e results of its internal command set to a file or t/roug/ a pipe to a command" $/is is a very po'erful feature of t/e de(ugger" $/e follo'ing commands allo' t/is feature: ' Display 3aria(leBsC H Display History $race ) Display &rea:points T Display $race $a(le Here are some examples of t/is feature: ,yntax Description v W pg %ipe t/roug/ t/e pg filter t N traceta(le redirect trace points output to file v Record N file Display varia(le contents to a file Table 2 Debugger &e"irection $-1-N2, $26 8ser *uide %age !2 of !5 De(ugging $26 ,erver 7Ho' $o7 *uide Ee!ution . Single Ste$$ing s/.t!gd/n00/nn0 Argument Description ;t display trace ta(le after eac/ source line executed ;c only count t/e lines of source in t/e same CA00 level ;g only count t/e lines of source in t/e same G$SU% level ;dTnU enter a delay in increments of !00 milliseconds (et'een executing lines of source" $/is is incremented (y t/e n value entered" nn execute t/e next nn lines of source (efore re;entering de(ug Table # $ingle $tepping 'rguments $/is command is used to execute t/e program in steps and to re;enter de(ug after t/e execution of a given num(er of lines of code" $raced varia(les are displayed after de(ug is re;entered0 and any screen display 'it/in t/e executed code is s/o'n as normal" -ntry Result s $/e simplest form of t/e command executes t/e next line of t/e code and t/en re;enters de(ug" s 1t $/e next line of code is executed and t/e contents of all entries in t/e trace ta(le are s/o'n" s .t4 $/e next four lines of code are executed displaying t/e trace ta(le entries (efore re;entering de(ug" s 22 $/is command executes t/e next 20 lines of code (efore re;entering de(ug" s .td3 222 $/e command executes t/e next 200 lines of code" $/e ;d s'itc/ sets a delay in increments of !00 milliseconds (et'een eac/ line executed" $/e 5 denotes t/at a 500 millisecond0 or /alf second delay is set (efore executing t/e next line" $/e default value is !0 or !00 milliseconds" $/e ;t s'itc/ ensures t/at t/e trace commands are s/o'n after t/e execution of every line" @/ile t/is process is continuing0 de(ug can (e entered (y (rea:ing into t/e program as normal" $/is is a very useful command to use '/en a run;time error occurs in a program0 and t/e area of code responsi(le needs to (e found Auic:ly" @it/ t/e ;d s'itc/ set0 it is also possi(le to speed up or slo' do'n t/e execution of t/e code if t/e initial value c/osen is too fast or slo'" $/is is done (y entering a num(er from t/e :ey(oard in t/e range 0;R0 '/ic/ alters t/e delay to t/e given num(er of !00 milliseconds increments" s .d4t 322 $/e command 'ill execute t/e next 500 lines of code 'it/ a delay factor of 900 milliseconds (et'een eac/ line" $/e speed of execution can (e increased or decreased (y pressing t/e num(ers 0;R on t/e :ey(oard during execution" n addition to t/is0 t/e ;t s'itc/ means t/at t/e contents of t/e varia(les trace ta(le 'ill (e displayed after every line of code executed" Table 4 Examples of how to use single-stepping arguments $-1-N2, $26 8ser *uide %age !9 of !5 De(ugging $26 ,erver 7Ho' $o7 *uide 'ariable Dis$la# '/.gv"rs0 ,yntax Description 3 AN, $/e simplest form of t/e command 'ill display t/e contents of t/e varia(le next to t/e varia(le name0 in t/is case A1S" $/is 'ill only produce a display if t/e source is at level !0 or in t/e /ome directory" f t/e varia(le /as not (een assigned0 t/e value BN8LLC is displayed" f t/e value assigned /appens to (e null0 /o'ever0 t/en a (lan: BnullC 'ill (e displayed next to t/e varia(le name" v ;g AN, f t/e varia(le in Auestion resides in a different data area to t/e local level B42112N or NA1-D 42112NC0 t/en t/e !& s'itc/ s/ould (e used to display t/e varia(le contents" $/is extends t/e display of t/e varia(le to data levels0 and is particularly useful '/en executing a su(routine in a su(;directory or li(rary" v ;m AN, $/e !' s'itc/ displays t/e varia(le and contents0 (ut in addition allo's t/e user to modify t/e contents" An eAual sign is s/o'n after t/e varia(le contents0 and any c/aracters or num(ers entered follo'ed (y a carriage return are ta:en to (e t/e ne' value of t/e varia(le" -ntering a carriage return leaves t/e varia(le contents unc/anged" $/e c/aracter seAuence )nnn is replaced (y t/e (inary c/aracter defined (y t/e octal num(er nnn" $/erefore t/e seAuence )234 'ould (e replaced (y a field mar:" v ;gv AN, $/is command displays t/e value /eld in varia(le AN, no matter '/at t/e current level of t/e source" n addition0 t/e !5 s'itc/ s/o's t/e type of varia(le Bstring or numericC0 its memory location0 and siXe" v ;r NA1- $/is command displays t/e contents of t/e varia(le NA1- at t/e start of t/e next line" $/e !r s'itc/ provides a ra' c/aracter vie' of t/e varia(le name and value" v ;s NA1- $/e !s s'itc/ s/o's a s/ort vie' of t/e varia(le (eing t/e first !2P (ytes" $/e " and 6 c/aracters can also (e used 'it/in t/e varia(le name as 'ild card c/aracters" $/e 6 denoting a single occurrence of any c/aracter0 and t/e " denoting any num(er of occurrences of any c/aracter" Table ( Displa)ing Variables in Debugger $-1-N2, $26 8ser *uide %age !6 of !5 De(ugging $26 ,erver 7Ho' $o7 *uide $/e ta(le (elo' s/o's some examples: -ntry Result v AV displays all varia(les (eginning 'it/ t/e letter A v AFFF displays all four letter varia(les (eginning 'it/ t/e letter A v V;N3 displays all varia(les ending 'it/ t/e c/aracters !I17 v V-N%V displays all varia(les 'it/ t/e c/aracters E1P 'it/in t/eir name v L,B20VC displays every element in t/e second ro' of t/e dimensioned array 0IS 3 3Y.)8N4$2N Displays contents of t/e common varia(le 3.)8N4$2N0 note t/e . must (e prefixed (y Y ot/er'ise t/e .)8N4$2N is interpreted as an environment varia(le" Table * Examples of Displa)ing Variables All t/e a(ove ta(les are ta:en from t/e +&A,- :no'ledge(ase '/ic/ contains furt/er commands for t/e de(ugger" /ttp:EE'''"+(ase"comE:no'ledge(aseEindex"/tml $-1-N2, $26 8ser *uide %age !5 of !5