GDB Debugging: How to Debug a C/C++ program

Поділитися
Вставка
  • Опубліковано 20 січ 2025

КОМЕНТАРІ • 54

  • @kenwallace6493
    @kenwallace6493 3 роки тому +10

    Still best GBD tutorial to date. 10/21

  • @abhis-world
    @abhis-world 4 роки тому +11

    You are indeed a great tutor! Thanks for coming up with this in the most precise way possible

  • @AshishKumar-tg6zh
    @AshishKumar-tg6zh 4 роки тому +2

    I want more free videos on Linux and Game development.
    I watched all your UA-cam videos.
    And I also enrolled for your Fundamentals of game development. And I am learning and enjoying it.
    Thanks for all of your great tutorials.
    And I want a SDL c++ course that teaches in-depth knowledge of game development like memory management, handling pointers, physics engine, optimization and many more cool stuff that the c++ made for.
    Again thank you very much 😊

    • @pikuma
      @pikuma  4 роки тому +1

      Thank you so much. I'm recordng new videos and courses as we speak. OpenGL and Game physics are the next ones. :)

    • @AshishKumar-tg6zh
      @AshishKumar-tg6zh 4 роки тому +1

      @@pikuma You are my greatest teacher. That is what i wanted. I am rely excited for the new course.
      If I make any game I will definitely going to add your name.
      And If I will make some money I am going to support you.
      Thanks you very much. I will waiting for your next course on Game Development.

    • @AshishKumar-tg6zh
      @AshishKumar-tg6zh 4 роки тому +1

      I finished your Fundamental of 2D game engine.
      Wow! That is my best course in my life. I learned a lot that I can't learn from UA-cam videos. You shown me the power of Linux, C++ from terminal, vim the best code editor which taught me how to write code without mouse and most important fundamentals of 2D game Engine.
      Now I am going to make a level editor from C++ SDL.
      And I am also going to take Raycasting but I don't want to learn other languages like JavaScript.
      Why don't you use c++ and lua.
      Sorry for bad English.

    • @pikuma
      @pikuma  4 роки тому +1

      @@AshishKumar-tg6zh This is incredibly inspiring. Thank you so much for the support. :)

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

    never used gdb but would like to get into it
    this was a perfect introduction
    many thanks for sharing your knowledge

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

    Wonderful! Loved the simplicity

  • @ajobe15
    @ajobe15 4 роки тому +9

    Great tutorial! I would love to see a more in-depth debugging tutorial, though. For example, what would you do if there was a segmentation fault? Learning to debug C++ on Linux is frustrating when you are so used to Visual Studio.

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

      True. I do believe Visual Studio is the best C++ IDE out there. Such a great piece of software...

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

    Show them core file debugging and conditional watches. Also, executables should always be compiled with -g -gcc-record-switches -g3, which will make the executable significantly larger but doesn't impact execution speed since the runtime linker knows to ignore the debugging slots of the ELF file. For 0.2 ms longer that it takes to start, it's worth having the source code and the symbols embedded in the executable in case a core dump happens and debugging is required, but the source code and symbol information isn't available separately. And yes there is a practice on GNU/Linux to separate the debugging information out of such generated executable, but it relies on GNU objdump utility which isn't guaranteed to be present on other UNIX operating systems, and usually requires figuring out which additional package contains the said debugging information, so it is by no means a good practice. Therefore it is better to have the source code and the debugging information embedded in the executable. Always.

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

    Great help. Thanks!

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

    Thank you so much Gustavo!

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

    Great tutorial, thank you for this!

  • @muudus_tv
    @muudus_tv 4 роки тому +1

    Wow this is the best video i got, i always love the classic retro way of doing stuffs. Where can i find all the debugging keyboard cmd for GDB along with good explanation of same.

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

    Trying to learn to debug 16 bit Assembly programs. The very few GDB tutorials assume you are working in C or C++. Would appreciate any info on how to debug an Assembly program. Got GDB working but can't figure out how to display the program code if it's not an .exe

  • @TL-fe9si
    @TL-fe9si 3 роки тому

    Thank you very much! This is really helpful!!

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

    Valeu, Gustavo!!

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

      Grande! 😉

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

    How I can catch an errors inside a code by third party software?
    My main idea is to create game engine and catch errors of the editor and runtime code errors using GDB..

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

    hello good presentation of gdb but from my side "layout next" is not recognized as a command...
    I'm on windows system and using native "gdb.exe" program provided with my MinGW/bin repertory.

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

      maybe you can use it from within mingw instead?

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

    Anyway you could cover gdb for large projects? Eg: How would you go about using it with something like a game with hundreds or thousands of source files. How to easily set a break point somewhere in middle of all that to find the part of the program you need to actually step through without having to go through thousands of lines first?

  • @mrbbayat
    @mrbbayat 4 роки тому +1

    Fantastic.

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

    I need to type "list" to show the source code, otherwise it shows the asm

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

    Do you prefer to debug large code the same way ?

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

    Ótima explicação. Vi que é brasileiro. Massa. Vou adquirir o curso de LUA em breve e ver se melhoro meus códigos em C. Tem previsão de migrar seus outros cursos pra Udemy? Grande abraço.

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

      Grande Julio. Os cursos novos vão ser publicados no meu site pikuma.com. Na Udemy só vou manter os que já fpram publicados lá. Abração!

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

    While I do appreciate the lesson on debugging with GDB, I saw the flaw in logic immediately without the need to use a debugger in this case.

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

      Ha! True.
      But one day you'll have a SegFault and then it will all make sense. 🙂
      Or you can just use a proper IDE as well, even better.

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

      @@pikuma It already makes sense as I currently do have code that SegFaults. Now to apply the methods you've demonstrated...

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

    When I use "layout next" I get my code but in assembly language. I not sure why this is.

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

      Did you use -g to compile and keep the symbols? I think I mentioned that in the video.

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

      @@pikuma I was indeed using the g flag but it still gave me asm. I found out that I had to type "layout src" to have my c code appear

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

    Thank you its very help me

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

    How you make the vim editor so colourful 😅😅

    • @pikuma
      @pikuma  4 роки тому +1

      Hi Pritam. It's a simple theme called Monokai. :)

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

    How you install gdb on the Mac with the M1 chip

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

      Apple uses lldb instead of gdb. They are very similar.

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

    Estou fazendo o curso de raycasting javascript. Muito bom depois quero fazer os demais. Voce e brasileiro?

    • @pikuma
      @pikuma  5 років тому +2

      Opa Heitor, sim! Sou do RS mas moro em Londres há uns bons anos. De onde tu é?

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

      @@pikuma legal! Sou de são paulo. Nao tenho um ingles muito bom mas estou conseguindo entender as aulas. Voce tem cursos em portugues relacionado a programacao de jogos?

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

      @@torto20 O pessoal me diz que as legendas automáticas mais atrapalham do que ajudam. Eu vou gerar legendas manualmente em Pt-BR em todos os cursos em alguns meses.

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

      @@pikuma legal!!

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

    Big Man !

  • @niranjanamurthy4168
    @niranjanamurthy4168 4 роки тому +1

    good

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

    👍🏾👍🏾👍🏾

  • @Vnifit
    @Vnifit 4 роки тому +3

    1:03 you have a variable C E L E R Y

  • @subbirrahman1289
    @subbirrahman1289 6 місяців тому +1

    great tutorial. Thank you so much man