DOUG LLOYD: All right GDB. Quid est hoc modo? Ita GDB, quae stat pro GNU Debugger, est a tool ut possumus realiter terribilis uti qui auxiliator est noster debug nostri progressio, aut invenire ubi sunt errare in nostra progressio. GDB est obstupefacenter potens, sed in output et interaction cum ea parum potest nutibus. Praesent order versus plerumque stilo imaginem et nuntium mittat ad te multum posse. Et licet quaedam difficilia parse quid agatur. Fortunate, nos Ive 'capta gressus pango hoc tibi ut operari per CS50. Si non es usura graphice debugger, quae collega Dan Armandarse locutus quite video quod in aliquantulus ut constituerem eum super hic vox iam, vos vires postulo uti order versus tools ad iubileum operabitur apud GDB. Opus si tibi in CS50 IDE, non opus est. Sed si in alieno fideles non working in CS50 IDE, forte usura a version CS50 Appliance, vel alius Linux operating GDB elit ratio per eam vos may postulo utor haec tools to order versus. Et cum potentia quae pertinent ad eam utile iustum intuentes intellegimus quanti GDB operatur order versus. Sed iterum, si vestri ' usura CS50 IDE, vobis can utor graphical debugger quod est constructum in IDE. Ita ut res ire cum GDB committitur debugging processus a particulari progressio, omnes vos postulo efficio is typus GDB sequebatur Ratione institutionis nomen. Sic exempli gratia, si factae salve, vos typus GDB salve. Si facis, ut facis GDB evellere elit. Your promptus mutabit traditiones, et instead of quod solet est ut vos typus rerum iubente line-- ls, cd-- totus of vestri typicam Linux praecipit vestra prompt et mutabit traditiones, probabiliter aliquid sicut parentheses GDB parentheses. Quod vestri novus GDB promptus, quia tu intra GDB environment. Semel inside of quod environment, illic 'duo major mandata quod youll 'forsit utor in hoc ordine. Quorum primum est b, quae brevis pro fractura. Ac postquam type b tu typice type nomen officii aut si forte scire circa quod linea numerus vestri progressio est incipiens conversari paulo Ridiculum, vos can typus a line numerus illic pariter. Quid ab seu luce facit vestri progressio est licentiam opinionum praveque factorum currere usque ad certum terminum, scilicet nomine muneris ut specificare vel lineam erat numerus vulgi quod tibi dat speciem. Et in isto puncto, it duratus supplicium trahebatur. Hic est vere bonus est, quoniam aliquando executio fuerit constringitur, vos potest incipere tardissime step per vestri progressio. Revera, si currit fuistis vestri progressio, sunt es pulchellus brevis. Usitas, vos typus VULNUS dot quicquid nominis vestri progressio est ledo Ingredere prius quam hoc ictu tuus progressio iam peractum. Sed non multum tempus ad conandum et instar sicco quis suus 'iens iniuriam. Ita quidem res moram posse inposito in praeconio quaestu prostitit elit B et tunc in Erg. Tunc intermissum semel ponas re liceat elit. Et si quis est in vobis to order versus argumenta, hic non nominat, cum vos typus GDB vestri progressio nomen. Exactius omne mandatum line argumentis per carnem assumptam, r, vel run arca, et tunc quicquid usquam order versus argumenta, quid intus vestri progressio. Sunt tamen alia gravia et utilia praecepta inside of GDP environment. Sic lets iustus cito me transire faciam aliquos ex illis. Prima n, altera brevis, et tunc vos can typus loco n, utrumque foret opus. Quod suus 'iustus notarius. Et vos forsit iam parta adsuetos rebus posse type brevius plerumque melius. Quid enim tibi faciet gradum unum obstructionum code. Sic itll Progressum donec functio vocationem. Et tunc loco tribuo in eoque sollemni perfecto et omnibus qui officia codice, munus erit iustus. Functio vocabitur. Non enim qualecumque opus. Revertetur precium functionis invocavit super illud fortissimum. Deinde movebit ad te postero linea illius vocationis munere. Si autem vis ad ingrediamur inside of functionem, instead of iustus having illam faciendam, maxime si putatis longius problematis pateret intra illum usum praestat, tu quidem statuit intermissum monstrare inside of illa functio. Si vestri 'currentem potes uti s ad gradum una linea of ​​code. Propterea haec ingredietur et dive in functionibus, instead of iustus habere faciant et cœptum carpebant in munere te esse in pro debugging. Si vos umquam scire valor quantitatis variabilis, p type possis aut Print et tunc variabilis nomine. Idque omnium imprimere vobis inside of the GDB environment, nomine variabilis, quod vobis: excusare sospesque valor variabilis quod uarie nominaui. Si vis scire de omnibus bonis localis variabilis pervia unde vos sunt currently in tuo progressio, vos can typus info prouincialium. Suus 'multus ocius quam typing p et tunc quicquid usquam, listing de omnibus variabilium quia vos nescitis existere. Vos can typus info prouincialium, et omnia enim propter vos imprimere. Deinde sursum bt quod brevis Back Vestigium. Nunc, plerumque, praesertim diluculo in CS50, vos mos non realiter habere occasion uti bt, vel Back Vestigium, quia sis non habere functiones qui dicitis alia regis munia esse. Vos vires have a main call munus, quod suus 'forsit est. Sed non illud munus vocat aliud munus, quod actum alterius, et sic deinceps. Sed ut vestri progressio plus complexu, ac suam praesertim, quando incipias operantes cum recursion, retro vestigium possit esse utile ad te ubi aliquid huiusmodi contextu Ego in Programmate. Sic vestri codice scriptum dicet uos et vos scitis quoniam main vocat functio f, quod vocat functio g, quod vocat functio h. Sic habemus plures stratis nidificandi hic geritur. Si vestri 'inside of tuus GDB environment, et scientiam viarum tuarum inside de h, sed obliviscaris quod ubi accepit ad are-- vos can typus bt, an ut revertatur totidem vestigium, et erit imprimere h, g, f maxima iuxta aliam notitiam, dat vos a clue ut OK main f, f dicitur g, h g dicitur, et ut 'ubi ego sum currently in Programmate. Ita potest esse utile, praesertim quia conversatio-crypticus crebritatem GDB fit paulo superante, ut scire diligentius qua sunt. Postremo progressio fit vel cum vestri 'perfectus debugging eam et vis ad ingrediamur away ex GDB environment, ut ex hoc possimus cognoscere. Vos can typus q aut Quit, exire. Nunc autem, antequam hodierno video Parabant a progressio buggy vocavit buggy1, quae per me compilata, a file ut buggy1.c. Sicut vos vires exspectare, hoc in hoc progressio est buggy. Aliquid errat cum operam currere. Nunc, quod valde dolendum, I imprudenter deleted file buggy1.c meum, et ordinem exponat mihi, ex quid mali futurum hoc progressio, Im 'iens ut uti GDB genus temere tentantes navigare per hoc progressio quid agatur instar sicco exacte iniuriam. Sed iustus usura tools weve 'iam didicisti, possumus pulchellus ultum figure interrogate diligenter de ea quid est. Sic lets 'caput capitis super CS50 IDE et vultu. OK, ita hic in CS50 IDE environment, zoom in pauca dicam ut videas paulo plus. In terminatio fenestra, si enumerare contentis mea current director cum ls, nos youll 'animadverto ut I have a iugo of source files hic, quos possidet prius sermo habitus buggy1. Quidnam goes on cum I try plorabit et deducet buggy1. Bene lets 'inquirendo exsequebatur. Type I VULNUS dot, buggy et hit Ingreditur. Segmentation culpa. Ut 'non est bonum. Si memini, a segmentation culpa typice iam contingunt ad obvius memoria quod contingere non licet. Weve quodammodo pervenit extra terminos quid progressio, compilator, dedit nobis. Itaque iam ut ' clue servare in Mutationes conlatae ut incipiat debugging elit. Aliquid paululum recessisset expeditionis portio praecedens. Omni jure, ita sit amet sursum GDB environment et si forte possimus instar quod prorsus quaestio est. Ego puto me tabulatum et Im 'iens ut typus GDB iterum intrare GDB environment, et nomen progressio quod volo debug, buggy1. Nos modicum verba legens de symbolis buggy1, fiat. Omne quod intelligitur est trahi Congregavitque universum signum, iamque eam in fuerat cumulatus GDB valde opulentam et accincti pergemus ad proelium. Sed quid vis? Tu recordarer, quid primus gradus est typice post Im inside of hoc environment? In votis est, quote dixeras set a confractus punctum, quia in eo autem quod nolo, illud facio. Nunc non habent source code for this ante oculos, quae fortasse non habet proprium usum, per viam salutaveritis. Vos forsit. Ut bonum. Quod si feceris, quid unum munus, quem vos nescitis est in singulis C progressio? Nulla quam magna rutrum vel est, hoc munus est certus. Main, ius? Ut deficientibus omnibus substat, possumus set a confractus punctum at vi depulsuros esse. Et rursum: Ego poteram type et irrita faceremus main, instead of b. Si curiosus si semper typus diu imperium et nescis quia tu typed iniuriam rei, et vos volo impetro rid ut iam omnium fecit vos can take Imperium U, quae voluntas delete omnia et adducam te inde huc cursorem ad principium versus. Lorem velocius quam iustus prosternerent delete vel eorum confixione consistere fasciculum temporibus super. Sic puteus 'set a confractus punctum at vi depulsuros esse. Et sicut tu ipse domine perspicis diximus illud set a confractus punctum at file buggy1.c, et apparenter primam aciem procurrerat of code of main est linea septem. Iterum, non habent principium file hic, sed ego eam pono quod indicaverit mihi veritatem. Et tunc Im 'iustus trying currere progressio, r. Satus progressio. Omni jure, sic verbum istud est paulo crypticus. Sed quid suus 'basically hic aguntur nota est suus 'iustus Ive 'indicaverit mihi hit meo confractus punctum I numero punctum elit. Et quia linea of ​​code, nihil tale vel file presul. Sola causa Im 'quia nuntius est quia per ignorantiam deleted file buggy.c meum. Si buggy1.c file fuit in current directorium, quod linea recta ibi uellet actu indica mihi quid linea codice ad litteram legit. Infeliciter, Ego non delevit. Sumamus ad genus navigare hoc minus noxium incesse caput. OK, ita vide quae hic volo? Sed velim scire loci maybe variabiles sunt available ad me. Ive 'coepi meum progressio. Sit scriptor videre quid esset iam initialized pro nobis. Type I Info prouincialium nullus prouincialium. Recte, ut non mihi ton of notitia. Imprimere posset conari variabilium sed nescio quid variabilis nomina. Iterum experiri potui vestigii sed ego intra maxime Sic ego non cognosco aliud munus vocationem nunc. Ita similis mei tantum options sunt utor tam committitur dorso n. Im 'iens ut n. Ita ego typus n. O gosh quae hic gererentur. Program accepit signum, SIGSEGV segmentation culpa, et totum fasciculum effercio. Im 'iam obrueretur. Bene, illic 'actu sorte exiit ut hic infra cognosci poterunt. Quid est hoc dicere? Quod dicit, hoc est progressio futurum, sed nondum seg culpa. Et quidem ego ibo ut latius in zoom hic suus 'incipientes seg culpa about aliquid dicitur strcmp. Nos autem non est de munus hoc ponit se extensiue. Sed is-- quoniam erant 'non iens loqui de omni functione illa est in C vexillum library-- Omnes autem praesto, praesertim si tuleris respice reference.cs50.net. Et strcmp est vere potens quod intus est munus de string.h header file, quod est a header file quod dedicatum ad functiones et cum operantibus flagitabit canorae. Et in particulari, est quod facit strcmp comparat valores duobus filis sustinetur. Multiplex igitur me mox culpa in vocatio ad strcmp videtur. N reperio, immo mihi sermonem progressio terminentur signum SIGSEGV segmentation culpa. Ita nunc EGO vere have seg culpandum, et progressio habet pulchellus multo efficacius reddi corpus. Perfecta est omnis elit. Et destruxit, ruit. Itaque non multum, sed fecit actu discere admodum aliquantulus ex hac experientia. Quid didici? Bene, Programmate inruerit pulchellus ultum statim. Inruerit in Programmate Rememoramini autem strcmp sed nec in aliqua locali variabiles Quandocumque inruerit progressio. Quod filum, aut chordarum potui dari comparantes. Si non locali variabiles, ut vos notatum auguror I have-- ibi maybe est global variabilis, quod posset. Sed plerumque videtur amo Im conparantes ad id quod non est. Sic lets 'investigare quod paulo inferius. Sic ego me purgare elit. Ego quieti de GDB environment pro secundo. Im ratus, OK, ita nihil nulla loci variabiles in Programmate. Num igitur maybe ego suspicabar malum recta ratio quasi imperans in filo. Sic lets 'iustus hoc probate. Et non ante. Videamus, si forte is progressio si cucurrero iussu recta ratio facit. Huh, non segmentation culpa. Iustum dixerit mihi rhoncus ipsum. Sic maybe ut 'hic fix. Etenim si intravero papilionis sui aspiciebantque tergum actuali source code for buggy1.c, apparet sicut quod facio est Im faciens a vocatio sine strcmp reprehendo utrum in eo argv [I] est. Hoc fit actualiter source code for buggy1.c. Ita quod vere postulo hic figere Programmate: assumens habeo lima coram me, aequae adde reprehendo facio certus quod argc est aequalis II. Hoc exemplo etiam sicut dixi, paulum fraus innexa clienti, iustum Vestri 'non iens ut plerumque per accidens delete vestri radix code et tunc experiri et debug progressio. Sed hopefully, reddebat an vos illustration de talibus quae vos could cogitare de ut sis debugging vestri progressio. Quid rei est? Quid ego variabiles habent pervio ad me? Qua exigo est Programmate fragosus, quod linea, quae vocatio ad quod munus? Quale illud clues mihi? Et ut 'exigo quaedam questae quod vos ut tu cum introeunt ratus de debugging vestri progressio. Im Doug Lloyd. Hoc est CS50.