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

แชร์
ฝัง
  • เผยแพร่เมื่อ 7 พ.ย. 2024

ความคิดเห็น • 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 TH-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 TH-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. :)

  • @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  3 ปีที่แล้ว +2

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

  • @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

  • @AnnatarTheMaia
    @AnnatarTheMaia ปีที่แล้ว +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.

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

  • @starc0w
    @starc0w 2 ปีที่แล้ว +1

    Thank you so much Gustavo!

  • @upthinker2336
    @upthinker2336 3 ปีที่แล้ว +1

    Great tutorial, thank you for this!

  • @awesomeicemanpheasan
    @awesomeicemanpheasan 3 ปีที่แล้ว +2

    Great help. Thanks!

  • @universocpp
    @universocpp 3 ปีที่แล้ว +2

    Valeu, Gustavo!!

    • @pikuma
      @pikuma  3 ปีที่แล้ว

      Grande! 😉

  • @TL-fe9si
    @TL-fe9si 2 ปีที่แล้ว

    Thank you very much! This is really helpful!!

  • @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!

  • @dillingerlee2536
    @dillingerlee2536 2 หลายเดือนก่อน

    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

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

  • @mrbbayat
    @mrbbayat 4 ปีที่แล้ว +1

    Fantastic.

  • @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 ปีที่แล้ว

      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?

  • @akshaykuralkar8848
    @akshaykuralkar8848 3 ปีที่แล้ว

    Thank you its very help me

  • @myelinsheathxd
    @myelinsheathxd 2 ปีที่แล้ว

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

  • @muudus_tv
    @muudus_tv 4 ปีที่แล้ว

    Do you prefer to debug large code the same way ?

  • @mohamadfawaz4146
    @mohamadfawaz4146 2 ปีที่แล้ว

    Big Man !

  • @danyalkucuktas9763
    @danyalkucuktas9763 ปีที่แล้ว

    How you install gdb on the Mac with the M1 chip

    • @pikuma
      @pikuma  ปีที่แล้ว +1

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

  • @article3enthusiast
    @article3enthusiast 3 หลายเดือนก่อน

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

  • @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. :)

  • @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

  • @torto20
    @torto20 4 ปีที่แล้ว +3

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

    • @pikuma
      @pikuma  4 ปีที่แล้ว +2

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

    • @torto20
      @torto20 4 ปีที่แล้ว

      @@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  4 ปีที่แล้ว

      @@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 4 ปีที่แล้ว

      @@pikuma legal!!

  • @malickdiop28
    @malickdiop28 2 ปีที่แล้ว

    👍🏾👍🏾👍🏾

  • @niranjanamurthy4168
    @niranjanamurthy4168 4 ปีที่แล้ว +1

    good

  • @Vnifit
    @Vnifit 4 ปีที่แล้ว +3

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

    • @pikuma
      @pikuma  4 ปีที่แล้ว

      😅

  • @subbirrahman1289
    @subbirrahman1289 4 หลายเดือนก่อน +1

    great tutorial. Thank you so much man