home *** CD-ROM | disk | FTP | other *** search
- @^//\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
- @^\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
- @^\-\-+013
- @^//\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ WELCOME\ TO\ THE\ HIGHC\+\+/MDB\+
- @^\+\ DEMO+013
- @^//\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
- @^\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
- @^\-\-+013
- @^sleep\ 1500+013
- @^//\ We\ will\ begin\ by\ stepping\ into\ main\ and\ then\ look\ at\
- @^the+013
- @^//\ class\ manipulate_array\ \ (d).+013
- @^sleep\ 1000+013
- @^-066
- @^-066
- @^-066
- @^-066
- @^//\ Now\ let's\ examine\ the\ class\ manipulate_array\ +008 .+013
- @^//\ We\ can\ examine\ it\ with\ the\ 'exa\ d'\ command.+013
- @^sleep\ 1000+013
- @^exa\ d+013 +027
- @^// The\ class\ manipulate\ _array\ is\ inherited\ from\ creat_array\ \
- @^,\ array_op,+013
- @^//\ and\ define_array.\ \ define_array\ is\ the\ virtual\ base\ class.\ \
- @^The\ pointer+013
- @^//\ __vbp_define_array\ is\ the\ virtual\ base\ pointer\ to\ the\ class\
- @^+013
- @^//\ define_array\ as\ indicated\ by\ __vbp_.+013
- @^sleep\ 2000+013
- @^//\ We\ can\ go\ back\ to\ window\ 3\ and\ look\ at\ the\ define_array\ c
- @^lass\ by+013
- @^//\ following\ the\ pointer\ (*__vbp_define_array).+013
- @^sleep\ 1000+013
- @^//\ The\ address\ of\ the\ pointer\ is\ the\ same,\ because\ i
- @^t\ is\ a+013
- @^//\ virtual\ class.+013
- @^sleep\ 1000+013
- @^delay\ 20+013
- @^-122 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -072 -072
- @^-072 -072 -072 -072 -072 -072 -072 -072 -062 -038 -072 -072 -072 -072 -072
- @^-072 -072 -072 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077
- @^-077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077
- @^-077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077
- @^-077 +013 -080 -080 -080 -080 -080 -062 +027
- @^sleep\ 1200+013
- @^delay\ 1+013
- @^//\ Now\ let's\ close\ the\ windows\ and\ continue\ debugging.+013
- @^sleep\ 1000+013
- @^-122 -060 -066
- @^-066
- @^//\ Let's\ set\ a\ breakpoint\ at\ the\ function\ insert().\ The\ debugger\ will\ allow+013
- @^//\ us\ to\ select\ from\ the\ matching\ functions.\ \ The\ list\ of\ the
- @^\ functions+013
- @^//\ to\ select\ will\ include\ overloaded\ functions.+013
- @^sleep\ 2000+013
- @^delay\ 100+013
- @^b\ in+013 -080 +013
- @^delay\ 1+013
- @^//\ Let's\ look\ at\ the\ function\ we\ selected\ to\ make\ sure\ it
- @^\ is\ correct.+013
- @^b+013
- @^sleep\ 600+013
- @^//\ Now\ that\ we\ have\ selected\ the\ breakpoint,\ we\ can\ run\ the\
- @^program\ to\ stop\ +013
- @^//\ at\ create_array\:\:insert+013
- @^sleep\ 1200+013
- @^go+013
- @^-066
- @^//\ Now\ let's\ examine\ the\ 'this'\ pointer.+013
- @^sleep\ 1000+013
- @^exa\ this+013 +027
- @^//\ Because\ 'this'\ is\ a\ pointer,\ we\ can\ follow\ it.+013
- @^sleep\ 1000+013
- @^delay\ 20+013
- @^-122 -062 -080 -062 -080 -080 -080 -080 -080 -062 +027 //\ As\ you\ can\
- @^see,\ the\ debugger\ allows\ you\ to\ follow\ as\ many\ pointers+013
- @^//\ as\ you\ want.\ \ We\ can\ now\ close\ the\ windows\ and\ look\
- @^at\ a\ few\ variables.+013
- @^sleep\ 1000+013
- @^-122 -060 -066
- @^delay\ 1+013
- @^-066
- @^//\ You\ can\ also\ look\ at\ variables\ using\ the\ '?'\ command.+013
- @^s+008 ?cursize+013
- @^sleep\ 1000+013
- @^//\ Notice\ that\ the\ names\ are\ unmangled.+013
- @^sleep\ 1000+013
- @^-066
- @^//\ At\ any\ time\ during\ debugging\ you\
- @^can\ look\ at\ the\ call\ stack.\ \ The\ topmost+013
- @^//\ is\ the\ active\ routine\ numbered\ 0.
- @^+013
- @^sleep\ 1200+013
- @^delay\ 15+013
- @^-032 -080 +013 -038 -072 -072 -072 -072 -072 -077 -077 -077 +013 +027 -122
- @^-077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077
- @^-077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077
- @^-077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077
- @^-077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077
- @^-077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077
- @^-077 -077 -077 -077 -077 -077 -077 -077 -077 -071 -079 +027 //\ The\ call
- @^\ stack\ window\ shows\ the\ line\ number\ where\ the\ function\ was+013
- @^//\ called\ from\ and\ the\ values\ passed\ in\ as\ arguments.\ \
- @^Of\ course\ the+013
- @^//\ names\ are\ unmangled.+013
- @^delay\ 1+013
- @^sleep\ 1000+013
- @^//\ Let's \ close\ the\ call\ stack\ window\ and\ go\ back\ to\
- @^main.+013
- @^sleep\ 500+013
- @^-122 -060 -066
- @^//\ We\ can\ now\ disable\ the\ breakpoint\ we\ set\ earlier\ \
- @^at\ the\ insert\ +013
- @^//\ function\ +008 .+013
- @^sleep\ 800+013
- @^b\ 0\ off+013
- @^b+013
- @^//\ Now\ the\ breakpoint\ is\ DISABLED.+013
- @^sleep\ 500+013
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^//\ Now\ Let's\ set\ a\ break\ point\ on\ line\ 176,\ and\ then\
- @^step\ +013
- @^//\ inside\ function\ display_array_in_order()\ to\ examine\ a\ few\
- @^few+008 +008 +008 variables.+013
- @^sleep\ 1000+013
- @^b\ #176+013
- @^sleep\ 100+013
- @^go+013
- @^-066
- @^//\ Now\ let's\ clear\ all\ the\ breakpoints\ before\ we\ step\ into\ th
- @^e+013
- @^//\ display_array_in_order\ function.+013
- @^sleep\ 300+013
- @^b+013
- @^sleep\ 50+013
- @^b\ 1\ off+013
- @^sleep\ 50+013
- @^-065
- @^//\ We\ can\ examine\ the\ variable\ var.+013
- @^sleep\ 500+013
- @^exa\ var+013 +027
- @^//\ Once\ we\ execute\ line\ 205,\ notice\ that\ the\ value\ of\ var\ will
- @^\ change.+013
- @^sleep\ 1000+013
- @^-066
- @^//\ Now\ we\ will\ step\ into\ function\ next\_item\ and\ examine\ the\
- @^'this'\ pointer\ and+013
- @^//\ a\ few\ variables\ declared\ in\ the\ class\ where\ 'next\_item'\ is\
- @^declare
- @^d.+013
- @^sleep\ 1200+013
- @^-065
- @^//\ The\ window\ displaying\ var\ is\ marked\ INACTIVE\ becau
- @^se\ the\ scope+013
- @^//\ has\ changed.+013
- @^sleep\ 800+013
- @^//\ We\ can\ examine\ variables\ b2x\ and\ b2y.\ \ Also\ we\ can\ exa
- @^mine\ the\ 'this'+013
- @^//\ pointer,\ but\ first\ we\ want\ to\ close\ window\ 3\
- @^marked\ INACTIVE.+013
- @^sleep\ 800+013
- @^-122 -060 exa\ b2x+013 +027
- @^-066
- @^exa\ b2x+013 +027
- @^exa\ this+013 -062 -080 -062 -060 +027
- @^//\ The\ examine\ window\ shows\ the\ type\ of\ the\ variable,\ then\ the\
- @^name\ of\ +013
- @^//\ the\ variable\ (the\ names\ are\ unmangled),\ and\ then\ the\ va
- @^lue\ is+013
- @^//\ displayed\ in\ decimal.\ \ For\ pointers\ the\ val
- @^ue\ is\ in\ hex.+013
- @^sleep\ 1800+013
- @^//\ Let's\ close\ the\ windows\ and\ go\ back\ to\ main\ and\ do\ somethin
- @^g\ more+013
- @^//\ interesting.+013
- @^sleep\ 1000+013
- @^-124 -060 -122 -060 -122 -060 -066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^//\ We\ will\ now\ step\ into\ function\ search.+013
- @^sleep\ 500+013
- @^-065
- @^//\ At\ this\ point\ we\ can\ look\ at\ the\ pointer\ arr.+013
- @^sleep\ 500+013
- @^exa\ arr+013 -062 +027
- @^sleep\ 1500+013
- @^//\ Let's\ close\ the\ windows.+013
- @^sleep\ 500+013
- @^-122 -060 //\ We\ are\ sitting\ at\ a\ function\ call,\ so\ let's\
- @^step\ in\ there\ and+013
- @^//\ look\ at\ a\ few\ more\ things.+013
- @^sleep\ 1000+013
- @^-065
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^//\ Let's\ examine\ variables\ cursize\ and\ i
- @^tem.+013
- @^sleep\ 800+013
- @^exa\ cursize+013 +027
- @^exa\ item+013 +027
- @^sleep\ 100+013
- @^//\
- @^You\ can\ see\ that\ cursize\ is\ declared\ in\ define_array.\ \ And\ the
- @^\ class+013
- @^//\ array_op\ is\ derived\ from\ define_array.\ \ The\
- @^variable\ item\ is\ local.+013
- @^sleep\ 1200+013
- @^//\ Now\ we\ can\ close\ these\ windows\ and\ go\ back\ to\ main.+013
- @^sleep\ 800+013
- @^-122 -060 -122 -060 -120 -080 -080 -080 -080 -063 go+013
- @^-066
- @^-066
- @^-066
- @^-066
- @^//\ Let's\ step\ inside\ function\ swap,\ called\ at\ line\ 185.\ Once\ we\
- @^get\ inside+013
- @^//\ swap,\ we\ will\ show\ how\ to\ look\ at\ memory\ locations.+013
- @^sleep\ 1000+013
- @^b\ #185+013
- @^go+013
- @^-065
- @^-066
- @^-065
- @^-066
- @^-066
- @^-065
- @^go+013
- @^-065
- @^-065
- @^-065
- @^-065
- @^-065
- @^//\ Let's\ look\ at\ the\ memory\ location\ pointed\ to\ by\ x.+013
- @^sleep\ 800+013
- @^delay\ 20+013
- @^mem\ x+013 -038 -072 -072 -072 -072 -077 +013 +027
- @^delay\ 1+013
- @^//\ As\ you\ can\ see,\ the\ memory\ window\ is\ displaying\ data\ in\ byt
- @^es.+013
- @^//\ We\ can\ change\ the\ format\ of\ the\ window\ to\ dword,\ qwor
- @^d,\ or\ word\ size.+013
- @^sleep\ 1000+013
- @^delay\ 10+013
- @^-122 -062 -080 -080 -080 -080 -080 -080 +013 -061 -080 -080 +013 -038 -077
- @^-077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077
- @^+013 +027 //\ What\ we\ just\ did\ is:\ \ we\ changed\
- @^the\ size\ of\ the\ window\ to\ display\ Dwords,+013
- @^//\ and\ we\ changed\ the\ format\ to\ Decimal.\ Now\ we\ will\ step\ through\ this\ f
- @^unction\ to+013
- @^//\ see\ how\ the\ contents\ of\ the\ window\ get\ upda
- @^ted.+013
- @^delay\ 1+013
- @^sleep\ 1500+013
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^//\ Now\ we\ can\ close\ the\ window\ and\
- @^disable\ breakpoints.+013
- @^sleep\ 800+013
- @^-122 -060
- @^b\ 2\ off+013
- @^b\ 3\ off+013
- @^-066
- @^-066
- @^-065
- @^-066
- @^-065
- @^//\ Let's\ again\ examine\ the\ 'this'\ pointer.+013
- @^sleep\ 800+013
- @^exa\ this+013 -062 +027
- @^//\ You\ can\ also\ cast\ pointers\ to\ other\ types.\ \ For\ example,\ l
- @^et's\ cast\ +013
- @^//\ 'this'\ pointer\ to\ create_array.+013
- @^sleep\ 800+013
- @^exa\ *(create_array*)this+013 +027
- @^//\ Notice\ that\ the\ window\ also\ shows\ the\ cast\ *(create_array*)this
- @^.+013
- @^//\ Now\ let's\ cast\ the\ 'this'\ pointer\ to\ manipulate_array.+013
- @^sleep\ 1000+013
- @^delay\ 15+013
- @^exa\ *(manipulate_array*)this+013 -038 -072 -072 -072 -072 -072 +013 +027
- @^//\ As\ you\ just\ saw,\ the\ cast\ is\ a\ very\ powerful\ feature.+013
- @^sleep\ 1500+013
- @^delay\ 1+013
- @^//\ Let's\ close\ these\ windows\ and\ look\ at\ the\
- @^CallStack\ window.+013
- @^delay\ 30+013
- @^sleep\ 1000+013
- @^-125 -060 -123 -060 -122 -060 -122 -060 -032 +013 -075 -075 -075 -075 -075
- @^-075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075
- @^-075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075
- @^-075 -075 -075 -075 -080 -080 -080 -072 -072 -072 -072 -077 -077 -077 -077
- @^-077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077
- @^-077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077
- @^-077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077
- @^-077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -077 -075 -075 -075 -075
- @^-075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075
- @^-075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075
- @^-075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075
- @^-075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075 -075
- @^-075 -075 -075 -075 -075 -060 -066
- @^delay\ 1+013
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^-066
- @^//\ Let's\ look\ at\ sett
- @^ing\ breakpoints\ again.\ \
- @^The\ debugger\ will\ let\ you+013
- @^//\ choose\ from\ different\ matching\ functions\ in\
- @^the\ window.+013
- @^sleep\ 800+013
- @^delay\ 50+013
- @^b\ s+013 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080
- @^-080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080
- @^+013
- @^delay\ 1+013
- @^//\ We\ selected\ the\ search\ function;\ as\ you\ can\ see,\ the\ line\ nu
- @^mber\ 196+013
- @^//\ is\ highlighted.+013
- @^sleep\ 800+013
- @^go+013
- @^-066
- @^-066
- @^rel+013
- @^b\ #176+013
- @^go+013
- @^-066
- @^-066
- @^-066
- @^-065
- @^//\ Let's\ examine\ arr\ again.+013
- @^sleep\ 500+013
- @^delay\ 20+013
- @^exa\ arr+013 -062 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080
- @^-080 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072 +027
- @^//\ If\ you\ think\ this\ is\ just\ a\ toy\ class,\ let\ me\ show\ you\
- @^the\ iostream\ class.+013
- @^delay\ 1+013
- @^sleep\ 1000+013
- @^//\ But\ first\ let's\ close\ these\ windows+013
- @^sleep\ 300+013
- @^-122 -060 -065
- @^exa\ *(iostream*)this+013 +027
- @^//\ How\ about\ that...+013
- @^sleep\ 1000+013
- @^//\ Now\ let's\ follow\ the\ __vbp_ios\ pointer.+013
- @^delay\ 40+013
- @^sleep\ 1000+013
- @^-122 -080 -080 -062 -038 -141 -141 -141 -141 -141 +013 -080 -080 -080 -080
- @^-080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080
- @^-080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080
- @^-072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072
- @^-072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072
- @^-072 -072 -072 -072 -060 -080 -080 -080 -072 -080 -080 -080 -072 -072 -072
- @^-072 -072 -062 -038 -141 -141 -141 -141 -141 +013 +027
- @^delay\ 1+013
- @^delay\ 1+013
- @^//\ So\ what\ do\ you\ think?+013
- @^sleep\ 1000+013
- @^//\ Let's\ close\ these\ windows\ now.+013
- @^sleep\ 500+013
- @^-122 -060 //\ Let\ me\ show\ you\ another\ way\ of\ looking\ at\ classes.
- @^\ \ This\ time\ we+013
- @^//\ will\ use\ the\ Symbol\ window\ from\ the\ top\ menu.+013
- @^sleep\ 1000+013
- @^delay\ 35+013
- @^-031 -080 -080 -080 -080 +013 -080 -080 -080 -080 -080 -080 -080 -080 -080
- @^-080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080
- @^-080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 +013 -080 -080 -080
- @^-080 -080 -080 -080 -080 -080 -080 -072 -072 -072 -072 -072 -072 -072 -072
- @^-072 -072 -072 -080 -080 -080 -072 -072 -072 +027 -072 -072 -072 +013 -080
- @^-080 -080 -080 -080 -080 -080 -080 -080 -072 -072 -072 -072 -072 -072 -072
- @^-072 -072 +027 -072 +013 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080
- @^-080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080
- @^-080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080
- @^-080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080
- @^-080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080
- @^-080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080
- @^-080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080
- @^-080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080
- @^-080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080
- @^-080 -080 +027 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072
- @^-072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072
- @^-072 -072 -072 -072 -072 -072 +013 -080 -080 -080 -080 -080 -080 -080 -080
- @^-080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -080 -072 -072 -072
- @^-072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072 -072
- @^-072 +027 +027 +027 //\ That's\ all\ folks...+013
- @^delay\ 1+013
- @^//\ We\ hope\ you\ enjoyed\ the\ demo...\ have\ a\ nice\ day!+013
- @^sleep\ 2000+013
- @^exit
-