Getting Started with the GNU Toolchain by Dr Bob

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
and this is a very little intro to the community to change that I would start first how many people are now using it you need to change especially an one two three four okay only about half less than I was expecting how many people have used other tool chains pretty much the same set okay well in that case then this is actually going to be new information more people than they thought it would be however those who have used it keep me honest and here's also for me this niche or this computer I've had less than 24 hours so anybody knows how to use makes people billion please sell me out but all right / basically for what a tool change is used for compiling why do we compile because the if you using scripting you are limited necessarily by speed compiling is almost always going to be faster with any form of foreseeable hard but compiling is adjusting in programs customizing them to the particular target scripts pretty much run anywhere they have been intended for using human speed compiling you're going to run something you want it to run several times faster than you get hopefully several thousand times faster than you again and you then that's usually to accomplish rather than you however having to know the peculiar properties of the compute we use to change to do it the two chains know the applications they know the details between whether it's an Intel processor whether it's PowerPC whether it's a MIPS processor etc I'll be talking today only about single processing or CPU compiling but one other is use for compiler is actually a distributed processing somebody wants to deal with that let me I will maybe do some added another presentation by the way since this is an introduction especially those who juice them if you want to interrupt their questions at some point and then get some discussion going on and yeah all right part of using any tool chain is to take advantage of what's called a software life cycle and weave that down support back up again blending in well there we go okay the benefit of software is that you can change it the bane of software is that you can change it so the purpose of the tool chain is to manage that give you the benefits of changeable code without giving you the problems in back in the 60s as well as the ganda me a you can repeat it they various organizations analyze it have found what the historically optimal ways are to a generate software how many people read the book software engineering by Demi identified and favorites got my problem broke no not for a mythical man one God most I hadn't made them a minute ago it's mostly on anyway how many people have read the classic textbook software engineer okay one verse two people three people good alright in it he proposed principles that really have been changed regarding that it's not just the number that number lines doesn't mean much but complexity locality flexibility these do an offering to talk to authors Pressman you know begins with the nation is also known ER the metrics that both staff for how stable to post that thank you kept computing the Hamming in my mind Halstead the push for metrics anyway so while there's multiple ways of slicing the pie the one that seems to be becoming most popular now the terminology changes is what they're now calling plan build run you've heard this before is waterfall it's the same thing the idea basically is is always iteration one thing that IBM found in the 1960s a V AT&T founded later is that when you're doing software you're almost always doing something you've never done before so you don't know how long it's going to take and that's contrary to a lot of what the business people want but it's the truth so what they found by looking at successful projects was that you make your best estimate as to how long it's going to take you to complete it you start doing it when you as you do so you revise your estimates when your estimated time of completion exceeds your estimated time of planning by 2/3 both them came to the conclusion that work met you probably needed to go back to the drawing board in other words if yesterday is going to take three months of planning two months to implement it and historically then you get a month of debugging then and you start into when you find out oops we're 2 months into it and we're not going to get it done in three months at that point you want to now go back and or rather that's much of it when you start implementing it you get into a week and you find out oh we hit some hard we're not going to get this done in two months so instead that's the time to go back and as I say go back to the drawing board we plan that portion of it but those iteration loops are what makes all software production economical historically when you go plan builds on whatever you call it okay so the plan is to have spec sets that whether you there's hypo UML specs by the way includes test programs you want to think about testing before you've written the first line of code I still hope you've heard that many times before how many people actually have written more than 50% of their code with tests before they wrote the code okay what okay yeah after yoga today we don't do it for you okay good well actually that's good the chair that the test codes their first advice restrict myself to my own code I'm pretty excited but unfortunately that has usually been allowed by my employers when they have by the way it's resulted in very fast code produced much more economically more reliably and with longer life time losing some of it was produced a Chrysler 10 years ago it's no gain use today okay so when you try to build it and this is it's in this bill section of the new tool chain bit and most of the popular tool chains out there fit as well mind you the new does have some that is associated with some components in plan and run and some of the things like WebSphere if you want to call them a tool chain they have much more in the rather than they do in the bill so that becomes what you call a tool treatments different manufacturers have been given different definitions the gönül tool chain was originally and attended by Richard Stallman I assume everybody's heard of Richard Stallman almost every anybody not heard which installment one first okay well basically Richard Stallman was the guy who was behind me here the new the canoe is not Unix project his goal mostly implemented by AT&T was to put together a UNIX what basically became the model of most of the open-source projects today they went the world and source projects before him but a lot of the software open source projects were basically mantra is original the new idea and what you see on what's commonly called Linux today and large portion of what's in bsd also is actually community almost the basic utilities okay so anyway when you have your specs you write source code and build it test it the community helps you with that if it until it passes your to chain it stays and built finally you get something you think is rentable you try and run it but somebody missed a spec somebody is too expensive someone foreseen requirements Curt or just plain to change okay I'll take the specs go through it again okay all this I'd say in any companies here that are also using plan build run how many okay two three all right look they called by different names and it all works out okay now that's the macroscopic you toolchain actually remembers in the development in the building and so that's okay in the development cycle you still have the plan but what you're depending on your tool chain for is to give you the debugging help that would be the syntax warnings and the errors to do the packaging or at least to help you with the packaging to help you with the testing Enuma has a variety of tools for these and tests so you start with respect you edit the source you build it you test it so you're spending a lot of time in this triangle ideally you want then that's if you have good feedback you'll minimize the time and you'll actually end up spending the goal is to spend the least amount of time possible debugging after you release you want to release code that's reliable and easy to change and doesn't break customers don't like broken code especially it's okay alright so we test failed pesky debug most of this is just terminology but a tool change that super toolkit provides the pieces that fit in these four squares and of course with working code okay like more detail you have to in the timing line the gradual today all right the mood to eject my post as the as compilers GCC which is their base one is actually eg CES which is a generic parser this hand is configured then to handle seacoast C++ Fortran I think you've actually got about twenty languages now anybody here using GCC for other than C or C++ okay one person two persons okay what are you using a for portrait I'm I'm strictly suit suit let's be cool okay strictly DC and you while we are using four percent C or C++ but we were actually okay recompile it yes that's one of the tools is the pre compiler allows you to alter the source which is the requirement of the ansi specifications for both C and C++ and we do supplies that as well GCC is their single point of entry a lot of GCC calls of the twins not always that contains them all right when you compile code other people of compiled code you want to take advantage of nobody wants to rewrite the wheel every time so compression algorithms for instance the experts have generated some very good links you will need to generate your own the compression tools these days likewise for handling our list structures so for that libraries in the tool chain the new tool chain rule they tend to have two types dot a that is so that is so shared memory that a actually got its name from assembled and it is the archive of object files dot o files ar is the new tool train archiver it allows you to hop files together how many people here are familiar with guitar especially those everybody wonderful tar is the tape archive archive was first nineteen sixty something rather tar came later and it was a because there are differences between using a tape drive serial axis as opposed to memory they made a modification called a tar tar ended up becoming very popular among people who never saw a tape drive how many people here use tar in the last week and have never seen a tape drive 1 2 3 4 5 6 ok yeah some of us still remember tape drive sorry right I'm sorry glad loading that thing ok good by the way beautiful with Java jar jar actually also gets its name same way okay so we have object objects or a single file that's been compiled libraries are collections of objects depending on the protocol that's used such as elf or what's called a dot out they will have additional information besides the data in particular they will have a symbol index so that when you go to combine the libraries it has the offsets or an information to find the offsets into the objects for each of the variables so when they when the two libraries are combined it can replace as it loads it the pointers to the calls in other libraries that appoints the one that avoids the problem in memory but having to have special jump tables all over the place which makes virtual addressing very very hard but if you know anybody never used to use an IBM 360 or eleven ask them about it the it also by the way allows you to have just the Laker LD for GCC also includes the versioning protocol and how many I assume everybody here has seen the libraries that ended - one died of - 2.1 - 3.0 and most of them are symbolic links okay that is a protocol that the new established as far as I know they were the new set many standards in the tool chain one of them is the numbering scheme for the libraries and the linker will walk back to find compatible libraries and it allows you by the scheme to have multiple libraries both the sets of libraries on the same machine you have the older code it will work with the newer libraries broken by the newer library on a book a new tool chain that's ok you keep a copy of the old library around for the legacy code that needs it and use the new code with the new libraries gives you the new features that's the new lender available also through GCC - help most of these are felt like cc's be able to okay so we have as there was a lot of docs I threw out of dogs which are helpful and main file there anybody here who hasn't used to make file okay everybody just made file good anybody by the way I'm gonna have a curiosity how many people use makes more often than and then what and after you see them okay about three stott 2/3 all right you make is wonderful and it's also on the gnu toolchain basically the compilers take source code mode indicated Cepheus block structure make is a dependency script it looks and what it resolves dependencies so and it isn't just strictly related to building source code I've used make for verifying security system because it will verify that things that need to happen in order have happened in order if something was interrupted either because of hardware failure network dropout whatever make is a beautiful way to confirm that sequences have been met the note starting here by the way corresponds to twelve agency you start with the source compile it there's a feedback loop there the compiler gives you the syntax warnings in the air anybody here remember let's okay a few people compilers in the very early days didn't to provide you with the source syntax checking IDs a separate program for that GCC that the new tool chain by the way there's still some tools that have that anybody here program a blackberry with the BlackBerry tool train you had to totally stand to handle your syntax checking a separate and was that a separate also very expensive piece it is given away free how you get the syntax checking built into the GCC some people complain that the C++ it gives is it's too much information but it's essentially self indexing so you can pick out you can filter for what you need from my understand is better to have too much information like to get from Jesus the new people a C++ compiler and filter it some goes wrong you can always find it west index second I mean the compilers going to detect technology side with the best practices the net making sure that the function returned what they said they were going to turn the arguments or stated them on that's a window to jesus email combines that identity that information go ahead yeah I just wanted to add you read some book for the Richmond newspapers as distant technical journals they also and even right away light to separate these out because it wanted to keep it too simple being able to assemble a pipeline and use it for the purposes but also in those days they didn't have enough memories you know in system so they resorted to that to the closet and the milk a much later and there is old guilt at scauldron contrite cold hit anything less than 64 megabyte unity and two pages or life and that could be true I think someone was on the scene in the night early 1980s yeah I like hitting and he was very the software community benefited greatly from what he was doing I mean at the time I got from a u.s. district attorney a letter s saying that IP addresses were classified and wanting a list of everybody who had access to IP addresses as an Internet Lee as an orphan a liaison at the time one of my monthly responsibilities was to distribute a list of IP addresses to anybody wanted them this is before DNS by the light so I was thinking of sending the District Attorney of the United States a copy of the phone book you don't look at my password Saur Saur Saur Saur penguin or password even if it matches everything ok so we get the syntax you get to acquire the objects to archive your puts them together and indexes them anyone if you choose what some of their hey that out you have to explicitly do the indexing which is this another command of the main you live we get third party obvious third party library and Docs it's not actually part of get in but its associated with it there's also doxygen and a lot of documentation tools everybody everybody yeah there's anybody here at oxygen does anybody here who has oh but I haven't heard okay what does Virginia's is it is a compiler that generates consequence okay it generates hierarchical documentation structures based on its own source code it also includes a syntax analyzer that can handle C++ C and a couple other languages Java cetera you can with that with adoption you can write what you mean as they say so what you see is what you mean red and what you see is what you get type of compiler and it was it's very well optimized for generating automatic documentation from source code especially CSP for C++ and Java yeah I knew those who are for disaster inventor and the Java doc of rollback of a pipeline would not smart with at least one of those product oxygen or Java doc what's familiar I've heard a robot okay I don't remember the precise sequence I think pearl doc was the first one then which was intended for a Perl code then I think Java is that followed on an effort and I think doxygen was the next one is chronologically which was when they adapted the similar structure for C and C++ and the Java doc but it came along I did the same thing for Java okay I'm throwing out these names so technically doctrine isn't part of the new tool train but it's associated with it well enough that probably okay we're actually ahead of schedule at this point I hand it around and or there was a USB if anybody wants it that they should mention that earlier with the code if anybody wants to try following along otherwise that to show you on the screen very simple with some thought I was really allowed to run your life happens the same time Barney which will install a key logger on through your laptop when she plugs in almost it won't install the key logger now what it's actually going to do is install a bottle äj-- the next time you go to the Internet it'll wait for you to enter some I don't know pins or something else and then it will load a lonely load then send it to me yeah no idea I didn't want to waste just putting the keel over on everybody's machine that sex anybody can do that I assume everybody knows when we came over is okay by the way I've done security for years so and part of that by the way has been breaking security when my friends jobs how many people here can say that they robbed a bank I can I got paid for it that's the idea here was a halide and tested their systems and I succeeded actually ended up stealing the money from the account of the bank officer who hired me I couldn't wire logon our diversity under the law by the way I had to return the money and then I got made the Themis by coincidence was able to the money I took but has returned the money for happens in the ball park mixa mixa here at should have but that wasn't that that's a negotiated be a mass part of the contract all right so now just a demo this by the way before we go on any questions how many people of is any of this new - ok 1 2 3 4 5 ok so not everybody in this before but wasn't sure to this audience how many people in the parties have done all right what's the simplest program you can write altogether hello world so what do you think the program we're going to demonstrate is right okay probably lines of code are in this by the way just and guess ok myself I'd say about 20 because I count those comment part of program part of what this about clarity matters code is easy to write comments are hard comments or what give you reliable code you could do they form so mr. Halstead how does one of the software might take the ratio common suppose I used to work for a company bro case where we set records reliable code making money and we had metrics for things going out the door one was that our code density had to be it could be no less than I believe there was seven bits per symbol in other words the bind besides the binary code which is actually a good fairly good minutes possibly binary compiled code divided by the number of unique symbols had to be at least seven and then the low Bertha there had to be at least seven bit it was that high it wasn't going out the door because they figured it was coming right back in again I might add most company in the workforce since then have not used that hiya metric and goes usually comes back a lot more often we're nice happy paying customers and didn't have to waste our time fixing code just add features all right yeah that thing is at that company by the way we did order of walkthroughs comments only strip the code just do the comments because get comments writing code does generally easy to translate it slow all right anybody think this doesn't work how many people by the way I've written a piece of code to wanting to ask your different way how many people have never written a piece of codes weren't the first time a full program to read the first time without errors but nothing ah so everybody here and had at least one program they wrote from scratch and it worked the first time new digital network right so it's never not then that means the lease up usually I'm talking from writing be no apartment acts are usually I'm texting as I'm writing good ok well anybody want to place a bet as to whether this will work the first time oh really I'll do that name it keeping it somebody is used to programming just that he doesn't see anything wrong with it very good this is the reason for using a tool chain and that's that's exactly right this is the key witness doesn't look like there's anything wrong with that all and correct yeah ok yeah yeah you're about to learn what's wrong with an edge right okay lots of options but the most at the GCC assumes that if you don't tell it otherwise if you can have run lots of languages with it you can specify with - X regardless of what the file name is otherwise it will assume based on the file type for the parson Linux there's no requirement for file types so you can always tell GCC the quite attacks that your code and filed a minute in that Steve actually C++ or Fortran or whatever you like okay i also assumes that no libraries need to be produced and an archive is unnecessary but again intelligent and in a pointing out what's possible if anybody wants to see how these are done we'll be doing up I suspect a lot of our experiments and abusive probative and nominate assumes one executable so now let's see here two lines excessively of code will actually work the first time say it's coming out so readable honestly if I can blow that up okay and we're going to see what it sounds that none of us did note by the way this is any warning anybody want to tell me what the difference between a warning within areas and information okay soget executable code key thing is a warning is telling you the compiler made an assumption compiler the tool the library link or whatever it made an assumption you have to check if the assumption made us was correct in this case it's telling you that it's all a function you didn't name it it isn't I didn't know it was it's assuming however that it's going to appear from somewhere don't know where and then must have an integer as the implicit declaration go ahead bingo okay he's already got the Cure which is exactly correct or you could good am there we go there's the there's the point morning just as your source was ambiguous now you want to get rid of warnings unfortunately I can tell you there's a lot of pressure all these are next table code go ahead and run it now you want to get rid of warnings because warnings are means it might work doesn't mean it will always work doesn't mean it's going to work in as soon as it leaves that this is in the customers hand all you will know is a commodity all you really know is it's compiled so you want to get rid of wardens warnings or ambiguity they at least allow you to keep testing if you some times going to enforce that you can as one of the GCC options tell it make all warnings there's as soon as there's a warning don't produce executable go okay so we already got somebody you said a cure so let's do that [Music] oh we got to do is a piece of command and let it out the way this time the advantage of a tool chain try doing that with a binary editor I have some 30 years but I am actually I take that back about two years ago a problem is that a microprocessor embedded thing I actually ended up editing binary machine is your binary Harmon how big is your binder ah well 2k baby would I like oh I'm sorry I thought you meant the one oh no the ones go in your hands back oh this one yeah it was probably pretty very good context and relatable yeah this one 12k yeah now I didn't turn on you assemble did what he's referring to is one of the options you can do in GCC is turn another simple table from hotter from hardening okay father's now that God is above you okay and only went up to about 500 bytes with it okay let's try that again another tool of the Union tool shape strip there are kind of two halves us six ounces then one advantage what's an advantage besides a side which is actually going to be more pronounced on something smaller what's an advantage to stripping yes what's good it was back yeah okay let's try that yeah that a good little Presley about the sergeant if I really option on doesn't he's going to disaster general because ethnicity all lowercase all one all one word you guys just did you need me to okay yeah yeah top-3 that okay oh my god we do for this machine yeah what do you know I do okay there we go this is you need the full information on an executable that's where you can find it can do is very good about giving you lots and lots of information and in ways that you can't search it printf for instance we have had it all right let's see without an action got today included to be in here not in your scribe outfit go ahead absolutely wouldn't think so and scribes me pretty that's probably my girl true his protector I believe is the group three oh okay slightly more complicated we got a clean source suggested as it worked slight complication in the library by the way to those who said you hadn't used before are you following along am I going too fast for those who haven't used to get into a dream before blinking fast alright you got questions stop us because the experts here have seen this done this probably within the last day all right so I got another program this time I 11 remembered the include and anybody want to guess with zeal it's for compression compression right and again how many lines do you figure this is will be paid to including me including the comment after include the comment Oh so yeah words every line stop that yeah that much longer been little over all right oh by the way I mentioned the bastion before you'll notice this one the here is that's an example of doxygen input the slash double star tells see that it's a comment it can ignore that of this GCC compiler can ignore it but doxygen reads this and it tells its about the corresponding function the power oxygen is not actually in the new tool chamber associated with it animals functions and those objects to handle my class definitions declarations usages good tool worth looking into and you actually can use it to do very very very stylized presentation slideshow type it's actually not bad for if you all you want to do is outline type stuff it's actually not bad okay so same thing as we did before list worthiness yeah any other thing noticed missing from this program compared to uh hello daddy yes that's never made okay so can you run a program without me running and do nothing technically jamming as hard as the ANSI spec says that the nominal entry has to be made you can run it with some tools where you tell it to start off at a different function but you're no longer in the FCC when you do that so well so let's apply with a mini okay once again is that we're changing and adding what just all we're doing is very simple ready one more pile so we could abandon libraries we're adding a source code we could add an object fire we could and library anybody want to guess what he head is going to do the first few lines ah there we go pardon me uncompressed first reliance enjoyed that's exactly what it's going to do now once again anybody noticed that something was missing before I pride executing with the tool tray right elibrary but though I had mentioned this diamond included I didn't actually get over to find it so undefined reference that's not coming out tomorrow coming out of the winter who said about the index it went searching through its index it found anything gzo but didn't find in any of the libraries given stuff complain and right all we have to do Francesco was find it and Eli is actually available supplied by agony as minus del Z once again when I saline bill he's interested by the way the original dialogue not quite so easily read simply compressed not interrupted just compressed assume every memo anybody here that numbers been encrypted and compressed okay yes I can't read an encrypted file but most people can read a compressed file either yes where's the algorithm is public good know that secretly well the algorithm for put the file is published in them the difference is that and the difference is the compressed file or an obscured file you can read without a password or without some key which means that anybody can read it an encrypted file depends on a key it is whether it's a secret key da a private key but it depends on a key so the only those people possessing the key can read in Krita file the best file anybody can read working with the necessary not necessarily but it usually does because if you don't do a compression before you do an encryption you empty you retain redundancy in the file that can be used to defeat the encryption this is what how they got any of you saw the movie the identity game or read the book innovators 2014 for this hall they got their dates wrong in the movie and got a bit steps but the British had broken the German Enigma machine used prior to World War two mostly because they were not using it properly you make my machine was used by right here was the Enigma machine is from the movie from the references okay on table one ok the machine was a popular typewriter like machine used in the first half of the 20th century very popular in Europe basically it was just like a typewriter but as you type thing it would put a different letter on the paper than what you typed and it would change being these wheels that were rotating what letter had put on it you would started off with a key phrase a setting in the wheels and then as you try to attack message when it got to the other end they could I think type it in and the same letters and and then convert it back to the correct what it originally was the problem was that the Germans my nose being used by a lot of companies not just German military they they were sending the same messages multiple times using the same key starting the messages all for the standard format is wedding presented it in the movie and this when you do that with the algorithms called the idea of rhythm you make change it from something that is as far as I know the only published non-breakable coding scheme in the sense that you can't do any better than brute force attack but if you reuse the same key for the same thing we use a key for to use the resend the same message it becomes a jigsaw ArcSight puzzle called a put to quote we publish equipped to go to the daily newspaper that fun so the Germans that the British had broken enigma machine prior to World War two at the start of World War two the German High Command cracked down under officers and it wasn't until the Americans captured a submarine that the Europeans that British we established their ability to read the German encrypt traffic we got the codebook out of the submarine and someone you can now visit by the way at the Chicago Museum of Science and Industry okay so that's it so normally though you whip that is constant you almost always compressed any message before you encrypt it otherwise largely defeated your encryption okay okay good we're getting back on time here they file as a part of the new mention it before anybody okay who here has not used to make file fresh oh and flu is not so everybody's used to make file even when to rapid enter so those of you who didn't you said you hand in the GCC before work get into shape what were you using make for anybody public resource compiled something from source but not with writing both makes almost over okay so it probably called GCC to make file a lot of paper likely that just makes part of it you need to okay you don't have to use it for GCC because it for office in ridiculous I'm sorry go ahead Elias really fought there you go refuted to generate their own commands right okay so to make file use instead of the symbols to express dependency the prop conventionally doesn't have to beautify convention there we go you define for a convenient standard set of options on the programs are using decency - see - CEO is the famous C compiler - II was don't generate the executable just go to object D is what the debugging information in Manilla specify an output GCC - hello accents your loader which is for main purpose it makes it easy to users to generate all your objects and only then do the linking to generate your executable that way if you have lots of object which is common and you only change one source you don't recompile the resource you only recompile the ones you know you changed and unlike me at least we can make changes then I made them and then wonder why they changes so jobs and the executable make can tell which files obtained which files are newer than the object so it will make all the source codes I changed even if I don't remember that's one of the big advantages of make your call rules rules already specify a pattern by the way leads perform anything I'm mentioning in it is actually specified by POSIX a unit standard make implements and they can open into a handsome extension but it is a very handsome animal this is a big advantage site the right ones runs on multiple platforms okay most of the extensions that are available give you better performance but they only do so usually usually they do so until they break some characteristic of a particular architecture or nine passes and everybody adopts that better architecture than threats and everybody okay rule is pattern and those that with the CC address written in to program with these options all the time the little symbols beginning with the dollar sign is makes macros so that this one rule can be used to compile any object and I don't have to write that script for all of the different source codes I just write the pattern types until Mako Adam use it and that it's a lot of us enter program in Aiea and then you got the targets targets through where you actually can specify the peculiarities of what you're building I put help as the first target in here because by default it to give the first targeted to make is a special feature it's the one that make Alexa cute if you don't tell it which execute so it's always a good idea to make your help menu the first target and make theirs at a pseudo directory structure like algorithm so you can group your targets for easy maintenance easy handling automatic production with the preprocessor there are large systems called X make and make make to take advantage of that to manage large projects across multiple platforms I don't know if it's go to one of the x's I think with X f-86 Metro it applies to X or if the source code was managed with X mate which is the make I think with the GCC preprocessor and the new as a standard set of targets convention is naughty not obligated things about the standard set of targets is now followed by a great many people give you the new children one of this event is spend so popular it has set a lot of standards okay so Dylan first little argument [Music] here we go okay no arguments tells you how to use let's give it a plain and I'm sure what's going to do here okay going to remove the executable and apparently there are two the objects will be yep you are today okay now there's no excuse their medical breakthroughs they make all he can't make home with a generic target which in turn is going to make the two executables well and yet you can hire actually program a you don't have to make central army in here so let's make them all now we got new version I don't know why daddy test target with big so I can write a little my test as well and I just want to build one to do something like burden maybe head test I can just ask one of it but see the directory structure again it's a convention it's not mandated but it will establish together okay so further some we haven't mentioned is in tool chain as gdb this is for debugging it allows you to step through the source code that you have both SP C++ or Klan Java that are auto comm either compo assuming those standard targets in the main allows you to set up a standard build scripts in for in fourth is substitution what it allows you to do is write file and the template and then combine it with variables the classic example of this which would be your pad I know nobody does this anymore but Christmas cards you write a standard letter you want to personalize it for everybody you could enforce the you would write a template and then provide it with a plant database everybody's name how to address them whatever and it will generate all the different dress labels cards etc okay bison suspects if you know if you want something beyond what is already standard as etc you can write your own parsers Perl was created as the portable abstraction and report language which is another way of saying it was supposed to be a compiler compiler almost nobody used it for that bison and Lex flex or tools for doing that so you got your own custom language your company has its own way of writing messages or writing some kind of script bison flex can reduce the anything if they miss repetitive you can turn it into a compiler okay lots of documentation main pages came out of AT&T and they were a standard originally the docs that got distributed or with info which is a hierarchical compressed form very good when you're short on members but every time you made a change you had to edit everything you had to recompile the whole system man came along with easily indexed searchable documentation and ironically can do went back to info they've been pushing the info they have made it however more far easier to make updates you can do incremental updates with it which makes a lot practical and they subside and okay of course today we've got Google stack designed tools we mentioned oxygen plan UML plenty only is five minutes good that time that was perfectly that it okay plan UML is a diagram tool again it's not part of the new toolkit but it fits very well with it it is used for generating UML documents in a docstring salary you rank at a source code that gets converted into UML diagram there anybody here does know what a UML diagram is uniform modeling language one person okay you know if flowcharts are okay good Poe charts were an IBM standard from the 60s away we are visual animals it was a way of visually representing algorithms and other information with object-oriented programming however flowcharts which assume a single thread aren't as easy to represent to the flowchart and so there were lots of every different company in the world develop their own graphic system for back in the seventies and eighties so when every textbook was different so I think it was ISOs one of the European standards organization it was I built and went correct me if I'm wrong I've got together committee and they said this is the way we're going to do it arrows go from their dependencies back to what they are derived from filled in arrows means that the on the building side it is fully transferred over to the good ninety arrow side an open triangle means that is partially transferred and so on they just picked some arbitrary choices because everybody else that there were two companies they all they always pick the opposite so you will know it's one set and at this point I think it's becoming most popular so anybody is using object oriented diagrams that are not ull nobody okay we're good did you mess up plant you out our PI UML is a source code from the textual fields in ritual milk okay the integrated environment Emax electric mode Eclipse how many people are using eclipse three four okay on how many people using Emacs ID okay one how many people using some other IDE what okay I recommend the IDE they send you a lot of time in trouble but I will warn you when use an IDE make sure that you can still compile your code build it completely without it because the otherwise you tend to lock yourself in and in the especially when you have to change platta somebody adds a new platform a new environment and it's usually just a matter of can okay deep compilation these are part of the middle retail take this part again this allows you to deconstruct the object files libraries the X cuticles and we have too many buzzing s face significant ooh it allows you to monitor all the system calls that they make again pretty butter alternate works out ray okay and I'll try us go ahead describe it oh it looks this that straight went on consistent focuses for library you got companies the library called the donut ball call okay so this is tool changing compiles the ground standards and see it's been around for thirty years by this time I think it works very reliably very portable course I don't I haven't met a a platform that hasn't worked on in about 15-20 years and code piled in one I didn't think it's been five years into the last time the problems over then since last time I compiled code for one platform that could compile the exact same source code for another platform assuming except with the ANSI standard all right any questions expansions comment I had one but go ahead much question little lower but it's really about if you have a program that is working [Music] water can you savor the rounder I research monitoring so you're not every to intermarry geez probably others to things G profile which is part of the good news and what it will do is it will modify what the TV on his owners never used a robot while I believe it modifies the binary code to put in crisis start of entry of functions and some functions other places and so it looks for a timing it also does limited memory checking in other words that when you enter a function to tries to keep track of the Act which in turn tells as one major source of memory leaks there is a another thing called Grindr about right now right which I'm not sure if that's in the canoe too late or not but it's definitely associated with it and Bob Ryan is very good at finding your memory leaks it will basically monitor images you can also use in gdb there are what are called watch commands the watch commands insert temporary code that was it actually observes into the running code to do branches when on memory or other state changes so you can use it to find where you're overriding mentally the performances fail it would that help you okay so Val Brian G profile gdb other questions okay you remember you
Info
Channel: Michigan!/Usr/Group
Views: 5,903
Rating: 4.5932202 out of 5
Keywords: mug.org
Id: sIlPn7JD1Ug
Channel Id: undefined
Length: 71min 28sec (4288 seconds)
Published: Tue Jul 11 2017
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.