>> 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.