C++ Debugger for complete beginners

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

КОМЕНТАРІ • 90

  • @роскомнадзор-д8я
    @роскомнадзор-д8я Місяць тому +30

    "dear beginners, please learn to use the debugger"
    bold of you to assume that my program compiles successfully

  • @lukasjetu9776
    @lukasjetu9776 Місяць тому +67

    the printf method is based 💯

    • @ika_666
      @ika_666 Місяць тому +2

      sometimes real debugging is more convenient and precise for checking complicated logic

    • @lukasjetu9776
      @lukasjetu9776 Місяць тому +3

      @@ika_666 i know but my dummy brain just chooses the simplest solution

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

      @@ika_666 print debugging is based though

    • @anynonamesays
      @anynonamesays Місяць тому +5

      ​@@ika_666 if project is big, debugger won't help you ('cause it cannot scale), but good logging and unit tests will. I personally don't use a debugger. Instead I just look at the code + sometimes use prints. If project grows, I'll just implement proper logging.
      So you can live without a debugger, because it is for specific uses, which I don't really mind spending more time on.

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

      in JS we have console.log and just opening the developer console is pretty much a debugger but without the checkpoints (you'll still need to console.log manually inside a loop, but honestly I never needed to learn proper debugging in JS (and I did wild stuff in JS: back end and even on the front end I do all the abstract professing (easy to translate into any other interpreted language - in C/C++ I'd have to worry about memory, but interpreted languages are all the same at this abstraction level) that never hooks into the DOM, API stuff), similar story with Python (I do way less Python, but the same logic applies): instead of running the program as regular, I run the Python interpreter and import the app - from that point on, I have access to everything (remember the namespaces, tho! ))
      I don't have the problems of all big boy programmers cos I'm just a cute lil soydev, writing my JS cutely while wearing a skirt and thigh highs, sipping on my soymilk choccy (actually carob cos I can't do cocoa 😂 my lil soydev tummy can't handle many things)

  • @wurlin_murlin
    @wurlin_murlin Місяць тому +7

    Debugging is the most valuable skill all engineers can learn at all levels of abstraction (maybe after "being passionate").
    If you are staring at code, or administrating a network service, or supporting some complex distributed cloud behemoth, or reverse engineering weird vendor products and protocols -- the skill of picturing & isolating components and being familiar with the tools to do so (be that a debugger or whatever else helps you see what's actually happening) always makes life less painful.

  • @Cinarbayramic
    @Cinarbayramic Місяць тому +20

    i just use it to measure which function takes the most time and optimise it

  • @jonnyrichards
    @jonnyrichards Місяць тому +3

    I love using a debugger specifically for gameplay stuff where there are lots of different variables that may or may not be causing the issue and instead of writing loads of print statements and reloading I can just test lots of different things on the fly.

  • @uis246
    @uis246 Місяць тому +4

    Stalin debugging: rasstrelyat that bug

  • @VanOri
    @VanOri Місяць тому +2

    Debuggers are the holy grail of programming

  • @speedg
    @speedg Місяць тому +2

    "nothing the g'old print debugging cant fix"

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

    Holy grail GDB,would've wasted much more hours than i should without it.

  • @darko_n6819
    @darko_n6819 Місяць тому +2

    GDB people could benefit by using some of them GDB GUIs but I can't assure you their quality.

    • @user-tw2kr6hg4r
      @user-tw2kr6hg4r Місяць тому

      how is that an improvement

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

      What specifically needs to be improved about gdb GUI? I know people will make a laundry list the size of the Eiffel Tower, but still, I'd love to know exactly how we can make a better gdb GUI for all.

  • @sealsharp
    @sealsharp Місяць тому +1

    "Never assume you know what the problem is"
    and related: find and fix the real problem.
    When searching for a problem, it tends to happen that you will find the symptoms of problem and it will be supereasy to just put an end to the effects caused by the bug instead of actually fixing the root cause.
    Fix the real problem!

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

    non-debuggers when "Segmentation Error"

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

    How much years of blood and sacrifice it takes to become beast Chad c++ coder

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

      hmm, a few years of doing cpp every day should get you there for sure 💪💪

  • @nevokrien95
    @nevokrien95 Місяць тому +1

    I use gdb for things but my goto is still printing and asserts

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

    Hi LowLevelGameDev.
    May I ask how you are handling different resolutions in your games?
    Like for example, I have a 1440p monitor and my 2d pixel art game looks good. But my friend for example has a 1080p monitor so everything looks zoomed in on his machine.
    How can I make it look the same on both resolutions without making it look scuffed.

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  Місяць тому +1

      Yo so this is actually harder than it seems. For 2D it is actually harder than in 3D. In my Steam game I gave the player the option to zoom in and out from the settings. Other games automatically zoom for you so you all get the same experience. You need to do something like that. Start from 1080p amd zoom in for higher rezolutions. Other games request a sepcific aspect ratio so they just black out parts of the screen to get that aspect ratio, and than zoom you in to get the desired result. You can also set the screen resolution in full screen mode to your wanted aspect ratio, tho you need to mess with winapi for that, but I can show you how if you message me on discord.

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

      ​@@lowlevelgamedev9330 Thanks a lot for your response.
      May I ask how I can find the value for the zoom? Dividing width by height only gives me the aspect ratio.
      (I dont want to mess with the win api since I mainly use Linux)
      Thanks again

  • @ashtonkusmaul6907
    @ashtonkusmaul6907 Місяць тому +1

    Is rust even good for game dev?

  • @user-sb5vt8iy5q
    @user-sb5vt8iy5q Місяць тому

    Can't be a coincidence that I spent 1 hour today because I forgot I copy pasted code that increment 'i' inside the for loop and inside the loop statement so I skipped half of the items...

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

    Heisenbug want to know your location

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

      I want to know its location 😂😂

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

      @@lowlevelgamedev9330 the observer perturbed the mesure, Heisenbug cease to exist the moment you look at it, it only exist when you don't, then it exist everywhere at once. That's quantic programming.

  • @LinguisticMirage
    @LinguisticMirage Місяць тому +3

    giga chad moment

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

    Do you know any good resources to learn gdb? In my experience, Those old tools have very sparse resources.

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

      nope and I honestly recomand using a gui debugger, but maybe try searching on yt

  • @Mad3011
    @Mad3011 Місяць тому +1

    I just don't get the anti debugger stance and insistence on adding printf statements that seems to be prevalent among certain circles. It's like not using oscilloscopes and multimeters when debugging a complex circuit board and instead staring at the pcb and soldering LEDs onto random spots. When I was just starting out I didn't use debuggers, mainly because I had no idea what they could do for me and did not know how to use them effectively. Two decades later and the debugger has become an indispensable tool. Learn to use both, learn when to use which and learn how to debug efficiently. Logging and debugging are not mutually exclusive, they go hand in hand.

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

      yes, thers no need to exclude any of them, the debugger is essential, and printt is very convinient for small things

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

      The comparison with LEDs is brilliant XD

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

    //FIXME: This.
    Never been fixed.

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

    What font do you use? It looks awesome! (as subtitle)

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

    Debugger is hard to setup in c++

  • @tadeplayzz2282
    @tadeplayzz2282 19 днів тому

    What compiler to you use

  • @user-du9ch3tn2v
    @user-du9ch3tn2v Місяць тому +1

    I always ask my self is there a memory viewing tool for Linux like the one from visual Studio (maybe a Video about replacing visual Studio - removing Microsoft from your live)

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  Місяць тому +1

      idk I don't use linux :)) there probably is. Clion has a debugger that had probably all the features that vs has.

    • @user-du9ch3tn2v
      @user-du9ch3tn2v Місяць тому

      Well that's fair

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

      @@lowlevelgamedev9330 CLion's debugger is great (it's essentially just a frontend to gdb or lldb) but it's not quite on par with the vs debugger

    • @Goutham.070
      @Goutham.070 Місяць тому

      @@lowlevelgamedev9330 but clion is paid i guess

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

      that's also my current goal.

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

    I use neovim and I'm not leaving it. Guess I am going with gdb

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

    Great video

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

    Sooo did u learn debugger? How is your vector class?😂

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

      precisely that was wat my problem with that thing there, you can't know that it is implementer right even with a debugger

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

    printf gang

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

    no🗿

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

    hehehe i not ise any of these i rocking without CMake hehehehehehe

  • @Hilent98
    @Hilent98 Місяць тому +1

    Meow

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

    uno

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

    as a rust developer, i only need the debugger when i call extern c functions (vulkan)

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  Місяць тому +3

      the debugger is not used only for null pointer exceptions, your program is not free of bugs because you use rust :))

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

      ​​​@@lowlevelgamedev9330the print methods works great for the other bugs🙃

  • @user-tw2kr6hg4r
    @user-tw2kr6hg4r Місяць тому

    dont use ide debugger wrappers, use a proper debugger instead. more generally, dont use an ide.

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  Місяць тому +4

      how is visual studio not a debugger? I think its considered one of the best debuggers out there

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

      @@lowlevelgamedev9330 Visual Studio's debugger is slow as fuck. It is _good enough_ which is why most Windows programmers aren't motivated to learn about better tools.

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

      @@lowlevelgamedev9330 i think this guy is advocating for a command line text editor + gdb or lldb

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

      i'd argue that not using an IDE scales terrible for Real World Software where you need to keep track of 100s or 1000s of Files and 1000s upon 1000s Lines of Code, i highly doubt they're creating GTA6 in Neovim :D

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

      @@lowlevelgamedev9330 ua-cam.com/video/r9eQth4Q5jg/v-deo.html

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

    In 3:00 it says geam instead of game