CppCon 2015: Greg Law " Give me 15 minutes & I'll change your view of GDB"

Поділитися
Вставка
  • Опубліковано 29 вер 2024

КОМЕНТАРІ • 169

  • @redpillcommando
    @redpillcommando 5 років тому +129

    Wow. I've been using GDB for years and I never knew it could do all of this.

  • @reductor_
    @reductor_ 9 років тому +95

    When he's talking about in TUI being stuck in the source window you can switch windows using ctrl+o, this will allow up/down arrows again in the command window.

    • @maximevince
      @maximevince 3 роки тому +18

      That would be: Ctrl-x o
      Thanks for the tip!

  • @xvoidee
    @xvoidee 4 роки тому +37

    For so many years printf for me was more useful than gdb. This talk has changed everything.

  • @andrerong5893
    @andrerong5893 3 роки тому +38

    Debugging is incredibly useful, even when a lot of people insist that print statements are sufficient. This talk inspires me to not be too dependent on CLion for debugging.

    • @KulaGGin
      @KulaGGin 2 роки тому +3

      Why'd you be using a tool from 1970, when you got a 2022 tool that's much more intuitive and efficient to use?

    • @Dwyriel
      @Dwyriel Рік тому

      Doesn't CLion itself uses GDB and integrates that into their GUI? tbh I could agree that knowing a thing or two about GDB is useful but even if you master it it's still going to be less efficient than having easy access to everything at the same time neatly presented to you in a GUI + all the keyboard shortcuts

    • @justadude8716
      @justadude8716 Рік тому +1

      @@Dwyriel I agree. But for learning purposes (and not on payroll) I found GDB more rewarding when I fix bugs in my code. Again, on payroll you absolutely should be using a powerful and intuitive GUI debugger. Also, sometimes GDB is the only tool you have available such as the case with micro controllers or remote shell (special case). But again, even in those cases, you can setup a GUI debugger and connect it to GDB (A recent example of mine is the Raspberry Pico, I debugged it with GDB but connected to that with VS Code to use it's simpler interface). That's the end of my blog :)

  • @prasadjoshi124
    @prasadjoshi124 6 років тому +13

    This was good, for some of us who cannot use IDE for coding and debugging. Wasn't aware of recording and reverse-continue. Thanks.

  • @pcfreak1992
    @pcfreak1992 6 років тому +59

    This quite annoying to follow when the first column is cut off by the screen-recording tool.

  • @dustinmorrison6315
    @dustinmorrison6315 2 роки тому +9

    Finally a UA-cam title that delivers!

  • @attilamolnar26
    @attilamolnar26 5 років тому +1

    or ues Emacs with realgud (a gdb frontend):
    github.com/realgud/realgud

  • @SiegeX1
    @SiegeX1 6 років тому +18

    If you’re going to use gdb, do yourself the favor and use the ‘cgdb’ tool/frontend vs this crappy TUI mode.

    • @FlowMindsAI
      @FlowMindsAI 6 років тому +1

      Thanks brah. very helpful.

    • @zechordlord
      @zechordlord 4 роки тому +4

      very good, but sometimes you might not have access to something like that, for instance you might be ssh'ing to a server through console (real story)

    • @paulmiller4566
      @paulmiller4566 4 роки тому

      I have a problem that on programs that do i/o, cgdb freezes after i/o. So I can't use that for those projects.

  • @RobertMurphy-wm3ge
    @RobertMurphy-wm3ge 6 місяців тому

    Seems like its overly complicated just for the sake of keeping everything in a text window...
    Thankfully Gdb Enhanced Functions (GEF) brings GDB back to the late eighties. OR, you could use visual and not deal with this clunker at all.

  • @tsukuyomu2313
    @tsukuyomu2313 6 років тому +4

    it seems those key combinations are come from emacs (at least emacs style), great for emacser xD
    i use gdb in emacs so im not worrying about the UI, but its really cool that u tells how to findout those segmentation fault bug and how to locate it, great video

  • @haxpor
    @haxpor 4 роки тому +2

    Under Ubuntu 18.04, core dumped file didn't get written into the current directory. The simplest and fastest way to resolve this is to `ulimit -c unlimited` then run the binary file again, the core file will be there.

  • @75yado
    @75yado 10 місяців тому

    What a piece of crap debugger.... Where in the agile hamster wheel do you have a time for this thing?
    I need quickly set breakpoint, watches, see local variables and work with callstack not to use the Python or whatever else.

  • @derysf
    @derysf 2 роки тому +2

    Ctrl-p / Ctrl-n are common readline bindings.

  • @petretrusca2
    @petretrusca2 2 роки тому +2

    When you discover all the power you had until now but didn't know that you can use !!!

  • @haiphamle3582
    @haiphamle3582 8 місяців тому +1

    I didn't know GDB was that powerful. Thankfully I joined one of his sharing about Undo (His company's product for time travelling debug), so I remember his name. What a gems here! Thanks a lot for the content, and please keep up the good work.

  • @EdwinFairchild
    @EdwinFairchild Місяць тому

    you dont have to type ctl-x etc... you can also type "layout src" will show C code , layout asm (assembly) and layout split (both).
    They need to add the python interpreter to the arm-none-eabi-gdb build

  • @vicmulyk5775
    @vicmulyk5775 2 місяці тому

    Did the emacs commands get incorporated into gdb proper? I often used emacs and used these commands to put a line marker in code and split window into 2 for the gdb CL. This is cool!

  • @thomasandolf7365
    @thomasandolf7365 6 місяців тому

    started out good but then halfway in he just flies away on this debugging journey where he lost me half way through so left the video. It was mostly a "look what we can do" but not how you actually do it.

  • @kdhlkjhdlk
    @kdhlkjhdlk 2 роки тому +2

    TUI mode is the buggiest part of GDB. It always crashes

    • @greglaw9145
      @greglaw9145 2 роки тому +2

      My personally experience is that older versions of GDB this was true, frequent segv's, but I find later versions to be pretty reliable. Screen gets a bit confused so you need to ^L, but otherwise solid. YMMV of course.

  • @zoltantorok1189
    @zoltantorok1189 10 місяців тому +1

    We had a follow-up advertised, but on the channel, there's nothing after this about GDB until next year.

  • @wastedkafir9134
    @wastedkafir9134 7 місяців тому

    wonder why linux c++ programmers are superior to windows c++ programmers!!

  • @seventyfive7597
    @seventyfive7597 Рік тому +1

    Now give me my 15 minutes back

  • @j.r.heisey5604
    @j.r.heisey5604 3 роки тому +1

    I just tried using the record command with a real application. The recording took so much CPU the inferior process was running many times slower. It ran for a couple minutes and I never saw the startup messages. It is a TCP server and the client timed out trying to connect. I have no idea how many instructions per seconds were actually being executed. I tried using hardware trace support but my Intel CPU does not support it. The hardware is a single board computer with 4th Gen Intel Core. Oh there are a dozen threads running.

  • @cynicalape
    @cynicalape 5 років тому +26

    To Windows developers "I'm sorry for you haha xd".
    Two mins later: Opens up a debugger interface from the 80s *people applaud*

  • @deltakid0
    @deltakid0 3 роки тому +3

    2:29 "CTRL + x, a" very nice trick, I like this video.

    • @baiwfg2
      @baiwfg2 2 роки тому

      But it easily messes up my screen.

    • @ethernet764
      @ethernet764 Рік тому

      @@baiwfg2 Press Ctrl+l (l as in Lima) to refresh the screen

  • @SillySussySally
    @SillySussySally Рік тому +1

    Reverse debugging is awesome, unless any avx instructions 😅

  • @thomasziereis330
    @thomasziereis330 11 місяців тому

    idk why i would ever use this over a visual debugger like in clion

  • @debarghyamaitra
    @debarghyamaitra 3 роки тому +1

    simply give the command
    layout src
    to get the TUI

    • @greglaw9145
      @greglaw9145 3 роки тому

      yes, I only learnt this a few months ago. That's the thing about GDB - there is always more to learn! :)

  • @AlDumbrava
    @AlDumbrava 2 місяці тому

    ctrl x + a beats me typing lay n 4 times!

  • @renderererer3572
    @renderererer3572 2 роки тому

    I fail to see the appeal of gdb even after the talk. For simple programs, some sort of print statement always suffices and for more complicated projects, you'd probably be using an IDE anyway.

  • @james3742
    @james3742 2 роки тому +1

    these tools are amazing. Its like there is a new debugging tool i never heard of inside gdb!

  • @broken_abi6973
    @broken_abi6973 6 років тому +16

    My experience with gdb with the tui or even integrated in linux IDEs (they crash or hang so often) was generally awful. I curse every time I need to use it.

    • @apojoga
      @apojoga 3 роки тому

      It's absolutely awful. Half the time you can't reliably step over or out of functions, you can't inspect STL containers out of the box, and the stupid thing crashes on malformed commands (or was that LLDB?). And you're typing all the time instead of using single-key shortcuts to quickly dig through the run. And he's presenting this "TUI" like a breakthrough advance of some kind. Yeah, VS has that, and everything else, give it a try sometime.

    • @embeddor2230
      @embeddor2230 2 роки тому +1

      @@apojoga Same here, I hate using gdb from the command line. The debugging experience in VS is just unmatched.

  • @harishkumar-jx5xw
    @harishkumar-jx5xw 6 місяців тому

    For me, who is used to Java and it's debugging via UI, c++ debugging and using gdb for that feels almost magical and I love it

  • @gmhgmhgmh
    @gmhgmhgmh Рік тому +1

    Great video! Very useful!

  • @sambell624
    @sambell624 2 роки тому +1

    Excellent Powerful presentation. Thanks.

    • @CppCon
      @CppCon  2 роки тому +1

      Thank you for your comment!

  • @cipherxen2
    @cipherxen2 2 роки тому

    I'm sorry Linux developers, you've to suffer the hell called gdb.

  • @sunilmehrotra1380
    @sunilmehrotra1380 3 роки тому +1

    Greg ... We want more of that

  • @shashanksharma21
    @shashanksharma21 2 роки тому +2

    Really useful stuff ! Thank you !

    • @CppCon
      @CppCon  2 роки тому +1

      Glad it was helpful!

    • @CppCon
      @CppCon  2 роки тому

      Glad it was helpful!

  • @gowrishankars9743
    @gowrishankars9743 2 роки тому +1

    Thank you so much :)

    • @CppCon
      @CppCon  2 роки тому

      You're welcome!

  • @manuelo1738
    @manuelo1738 2 роки тому

    Isn't TUI part just layout next?

  • @iyalovecky
    @iyalovecky 6 років тому +4

    With Visual Studio I can unfold it on two monitors (or more), so code window is on my main screen and stack, threads, etc. are on the second screen. Can i do it with gdb?

    • @nullplan01
      @nullplan01 5 років тому +7

      This is a user interface question. And as usual, Google is your friend. Just look for "GDB frontend", and you'll be buried in programs that purport to do what you want.

  • @jp19962
    @jp19962 7 років тому +13

    You just saved lives with your 15 mins. Thanks, it was awesome.
    Now I feel that I was wasting time on GUI based debuggers!
    Still... for huge projects, GUI based debuggers help better.

    • @KulaGGin
      @KulaGGin 2 роки тому

      they're always better.

  • @apojoga
    @apojoga 3 роки тому +2

    He's sorry for Windows developers... Man, have you *used* the VS debugger?

    • @ethernet764
      @ethernet764 Рік тому

      ?
      He’s sorry that the information in the presentation is useless to Windows developers. Meaning they can go ahead and leave and attend some other talk.

  • @leonhrad
    @leonhrad 9 років тому +4

    Why not use cgdb?

  • @clh983
    @clh983 8 років тому +4

    What's the meaning of the last page of the slide: gcc's g and o is orthogonal?

    • @Conenion
      @Conenion 8 років тому +4

      Not quite sure, but I think what is meant there is that "compile with debug information" = -g and "optimization level 1" = -O do not interfere whith each other.

    • @artisdom
      @artisdom 7 років тому +2

      -O is for optimization, you should use -O0 to turn optimization off when building debug binary.

    • @MaxCoplan
      @MaxCoplan 5 років тому

      Ted Feng which is normally the default for gcc btw

    • @pierrefley5000
      @pierrefley5000 2 місяці тому

      "Orthogonal" in this context means "can be used independently". The -g option of gcc enables debugging information; -O enables compiler optimizations. That is, you're not limited to debug builds (with debugging information and no optimization) and release builds (no debugging information, but optimized), you can also enable both -g and -O (optimized build with debugging information). So if a bug only occurs when optimizations are enabled, you can still have debugging info to track it down. (That said, optimized builds like to combine and reorder instructions, so in the source view you might see the "current statement" jump around wildly when stepping through the code.)

  • @victornoagbodji
    @victornoagbodji 2 роки тому

    Does anyone know an alternative C/C++ terminal debugger?

    • @greglaw9145
      @greglaw9145 2 роки тому +1

      lldb - although I confess I've never actually used it. Also TotalView has a command line (as well as GUI).

    • @victornoagbodji
      @victornoagbodji 2 роки тому

      @@greglaw9145 Thanks

  • @systemdeadlock
    @systemdeadlock 8 років тому +13

    Bad ass dude, thanks!

  • @StephenCameron
    @StephenCameron 7 років тому +2

    Ctrl-X A == eXtra Awesome

  • @adityaranigaon
    @adityaranigaon 3 роки тому

    I am in love with gdb

  • @Bing0197
    @Bing0197 4 роки тому

    Wow

  • @vincentlin2077
    @vincentlin2077 8 років тому +14

    awesome!!

  • @bryanodonoghue8252
    @bryanodonoghue8252 7 років тому

    Awesome - really good watch.

  • @stovegamesgames6917
    @stovegamesgames6917 3 роки тому +1

    Last few minutes of this video are probably the most useful minutes of your time.

    • @lyronly
      @lyronly 3 роки тому

      reverse debug I don‘t think vs debugger support that

  • @sj78665
    @sj78665 7 років тому

    what's that question at 5:07?

    • @tohopes
      @tohopes 7 років тому +4

      said the presenter didn't understand the keys cause he's a vim user

    • @90hijacked
      @90hijacked 3 роки тому

      @@tohopes vim user here, that bit made me laugh out loud.

  • @philips9042
    @philips9042 7 років тому +35

    Shows up to hold a speech about GDB at CppCon, demonstrates it on pure C code... Smh

    • @electrolyteorb
      @electrolyteorb 8 місяців тому +3

      I genuinely don't understand what's the problem with you guys... Smh

    • @loabrasumente2283
      @loabrasumente2283 5 місяців тому

      I really wish I can block people on UA-cam

  • @rebelScience
    @rebelScience 9 років тому

    Agree. I started embedded coding on Linux + Qt-Creator. I have everything working, compiling and running on my ARM and AVR chips, but Debuging jsut does nto work. Just can't find any proper info on how to integrate GDB into Qt-Creator and be able to just Debug like in Visual Studio. If this is not possible, that this endeed is very stupid, starting/stopping servers on a remote target and the rest...

  • @KulaGGin
    @KulaGGin 2 роки тому

    ahaha, look at print at 6:35! It can't even print properly! The worst piece of software I ever came across in my life. It's a program from 1970s in a modern world. They can't even program a proper UI for it.

  • @deadyanothaikiropool1chait713
    @deadyanothaikiropool1chait713 5 років тому

    Look like still can't disassemble to see how printf fully work....SADDDDDDDDD T-T

  • @zaherdirkey
    @zaherdirkey 8 років тому +22

    Nothing Changed

    • @Eug145
      @Eug145 7 років тому

      Sarcasm, yeah?

    • @dipi71
      @dipi71 6 років тому +8

      Well, nothing changed in the following regard: I keep getting surprised by functionality built into standard tools I’ve been using for 2 decades - functionality I had no idea it existed all along. Great presentation! Cheers!

  • @jerryj7596
    @jerryj7596 8 років тому

    thanks your video, can you please tell me how do you know need set break point at _exit.c:32, how we can test if on our compute(such as how we can find such breakpoint as _exit.c:32?

    • @jerryj7596
      @jerryj7596 8 років тому +1

      I get Undefined command: "record". this issue...

    • @xpahos
      @xpahos 8 років тому

      It's information about that gdb has no path with libc headers.

  • @rakesh4a1
    @rakesh4a1 6 років тому +1

    May be am too late to start learning to debug using GDB.
    I have a doubt, what is the equivalent of break point set at 'b _exit.c:32' in C++ (presenter mentions that this is c api). Sorry it might be stupid to ask this basic. Thanks in advance.

    • @nullplan01
      @nullplan01 5 років тому +3

      In that particular case, "b exit" will get you a breakpoint whenever your program returns from main() or calls exit(), C or C++.

  • @kevinspacey6090
    @kevinspacey6090 5 років тому

    CRTL + X + 2 doesn't work

    • @JeffChentingwei628
      @JeffChentingwei628 5 років тому +1

      Use this instead : (gdb) layout split

    • @twerkingduck1275
      @twerkingduck1275 5 років тому +3

      hit ctrl-x first, let go of the keys, then press 2 by itself. In other words, ctrl-x 2 rather than ctrl-x-2

    • @薛浩-t6q
      @薛浩-t6q 4 роки тому

      Ctrl X, and then press 2, like emacs

    • @lazy4549
      @lazy4549 4 роки тому

      @@twerkingduck1275 thanks dude, I don't use emacs, was stuck there

  • @krux02
    @krux02 8 років тому +7

    I still think that GDB sucks pretty much. Every time I wanted gdb to do something, I was just lost, I was not able to do it, and eventually gave up. That doesn't mean gdb was not able to do it, it was just that gdb was too complicated and obscure that it was impossible to me to use it. Gdb is not useless, because QT creator as a debugger is quite good, it it just uses gdb. But extending the functionality, like adding a print functions for my own class, just impossible.

  • @vertigo6982
    @vertigo6982 6 років тому +1

    VS is like an iphone.. its sweet.. got everything you need.. but I rather a Harmon Kardon stereo, and some superior quality camera than have to use my iphone for my pics and music playing.

  • @gast128
    @gast128 8 років тому +38

    This seems pretty archaic compared to Visual Studio. Can't these Linux guys make a good IDE (i.e. editor, code manager, help system, debugger). The trace ability functionality is cool though.

    • @tdimitrov
      @tdimitrov 8 років тому +22

      +gast128 Definitely not wanting to start a flame war, just curious. How can you debug application, running on remote machine or embedded device with VisualStudio?

    • @gast128
      @gast128 8 років тому +4

      +Tsvetomir Dimitrov I do not know embedded devices, but remote debugging was supported with Visual Studio (through msvsmon). I actually used it in the past; quite handy.

    • @tdimitrov
      @tdimitrov 8 років тому +15

      +gast128 I think you misunderstand the idea. GDB is a debugger, VS is an IDE. There are a lot of decent IDEs for Linux (none of them is as complete as VS, but that's another topic) and they all use gdb for debugging. What the lecturer shows is an alternative approach to debugging, which is very convenient for specific usecases like remote debugging, embedded devices, etc.

    • @gast128
      @gast128 8 років тому +4

      +Tsvetomir Dimitrov There is the difference: Visual Studio is an IDE and a debugger. That is very useful. You can just click lines of code to add breakpoints; no need for loading source files (Visual Studio uses pdb's to match binaries with) and when you change your code (adding or removing parts) the breakpoint automatically moves with the original code line. From this video it doesn't seem that GDB has any of this. This is all pity, since a great IDE 9with help system and integrated debugger) and games is what keeps me on the Windows platform.

    • @tdimitrov
      @tdimitrov 8 років тому +16

      +gast128 You still compare apples and oranges here. Let's stick to the debugging for a while. Tell me how you will debug a distributed application running on multiple nodes with VisualStudio (or Eclipse, QtCreator, etc.)? You will attach to each instance with your IDE without losing sanity? :)

  • @jptbaba
    @jptbaba 7 років тому +28

    emacs, vim and gdb are just plain archaic. When you are debugging on something like unreal engine, ability to view a lot of source line, syntax highlighting, intellisense, ability to switch files quickly is just given.
    Looking at a source, and putting a breakpoint, quick watch, watch local variables, watch stack, threads, without almost no configuration is just given and the way it should be.
    Imagine trying to get this working with unix tools, you'll waste days trying to get a vim, emacs plugin working. Quickly you'll learn there is another plugin which is 'better'.
    Sorry it is just fragmented community. Doesn't work out of the box, wastes my time. I prefer VS. And if you saw gdb is debugger, VS is ide. I'd still prefer VS over gdb, in fact use it via VS.
    VS is the way and superior to debug, gdb is a debugger need to be used by machines not humans.

    • @bobmarl6722
      @bobmarl6722 7 років тому +45

      Linux operating system was made using tools like Emacs, Vim and Gdb yet it's a million times more complicated than what you can be doing in Unreal Engine. IDEs like Visual Studio are like training wheels on bicyles, they're good to get you started, but you get rid of them once you get good enough. If you can't do programming without an IDE spoon fedding you, you're still an amateur.

    • @jptbaba
      @jptbaba 7 років тому +7

      you must be using a calculator

    • @DrSuess20x6
      @DrSuess20x6 7 років тому +14

      I think gatekeeping like that might be slightly overdramatic. Stroustrup himself hates Vim and Emacs and I'd hardly call him an amateur. There are even a number of kernel devs that use QtCreator and KDevelop (albeit QtCreator provides a direct GDB console which is why I use it). Certainly GDB is very powerful and worth learning, but for simple stuff, plenty of competent devs stick to the path of least resistance. (However, I can't understand how people can say VS is more powerful when you need to shell out thousands of dollars for Ultimate if you want to be able to step backwards. I wonder if WinDB supports it from the command line...)

    • @Ehal256
      @Ehal256 7 років тому +10

      > ability to view a lot of source line, syntax highlighting, intellisense, ability to switch files quickly
      You're aware that emacs already has all of those features right? And, even if it didn't you could add them yourself as it's completely programmable, unlike visual studio.

    • @jptbaba
      @jptbaba 7 років тому +3

      yeah and is slow as fuck too, to scroll a 5000 lines file. thank you

  • @rockgitmo
    @rockgitmo 9 років тому +20

    what a piece of shit compared to Visual Studio's debugger integrations. You can't ever claim to show a UI and diss on Windows at the same time.

    • @kocsis1david
      @kocsis1david 7 років тому +23

      rockgitmo visual studio is slow and buggy

    • @jopa19991
      @jopa19991 5 років тому +1

      >cpp se
      >complains about UI
      LMAO

    • @wlgrd7052
      @wlgrd7052 5 років тому +1

      Try debugging embedded devices with vs code, with all the power of gdb. Try

    • @RmDIrSudoSu
      @RmDIrSudoSu 5 років тому

      @@Ultr4noob And GDB can be use with VS.. But honestly I use VS now, I use to use GDB, but I find myself way more efficient and working way faster with VS. The profiler of VS is also really nice and really powerfull. Once you've set up your environnement correctly Visual studio became quite a powerfull tool, you can see as many information than with GDB. I originaly switch from GDB to VS because I had to code a DirectX application, but nowdays I'm still working in OpenGL with VS. There are downsides to VS, as there are downside with GDB.. But find the one that you're better with. As I said, I use to be a GDB enthusiast.. Then I had to work with VS, and now I can't go back.. I'm way faster, I had to learn a lot of shortcut, work my environnement, ... but I'm debugging things way faster than I was able to with GDB.

  • @canmetan670
    @canmetan670 8 років тому +7

    To be honest, there were WAY better GDB tutorials I've seen on youtube.
    This guy seems to be presenting just to have his name on the web. Because if he used GDB on a daily basis, he wouldn't be showing these.....

    • @tempiadem586
      @tempiadem586 7 років тому +30

      Hi, I'm just learning to use GDB, can you post some links to other tutorials that you find useful?

    • @alexandre3989
      @alexandre3989 7 років тому +9

      This is not a tutorial. He's just showing some of gdb's capabilities. I think the talk shouldn't have been only 15 minutes long though, it's not enough time to really show some interesting stuff.

    • @andreaszuercher7956
      @andreaszuercher7956 6 років тому +10

      He is showing cherry-picked highly-motivational features that naysayers against GDB might realize are solutions already there to their gripes and that their gripes were not as well founded as the naysayers against GDB might have presumed.
      ¶ That is a drastically different goal than a crawl-walk-run exhaustive comprehensive tutorial on step into, step out, step over, watch a variable, and so forth ad infinitum.

  • @johnrambo7914
    @johnrambo7914 8 років тому +18

    Ever heard of a not so new tool called IDE?
    You are welcome.

    • @vizigoththeo6674
      @vizigoththeo6674 7 років тому +13

      How do you work with IDEs when you are working from home over ssh?

    • @jptbaba
      @jptbaba 7 років тому +8

      Start a gdb/windbg server. Connect visual studio to it. Thank you boi

    • @bobmarl6722
      @bobmarl6722 7 років тому +21

      An IDE is a jack of all trades, master of none. You will never be a great programmer if you can't learn the best individual tools for your work.

    • @johnrambo7914
      @johnrambo7914 7 років тому +17

      Sure thing buster, keep wasting your time doing things the manual way.

    • @jptbaba
      @jptbaba 7 років тому +5

      these are the same people that think C++ headers should stay. Cause they are masochistic.