Wait, but Who's Debugging the Debugger?!

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 พ.ย. 2024
  • Music: / @nu11_ft
    The GDB frontend for Linux: github.com/nak...

ความคิดเห็น • 186

  • @nakst6528
    @nakst6528 ปีที่แล้ว +226

    Thanks for the bugfixes. A few tips when using gf2:
    - "skip to" (shift+click) does not do what you think it does! You are getting it confused with "run until" (ctrl+click)
    - You can change the default size of the watch window, see the "User interface" section of the README
    - The "traffic light" is the coloured box in the bottom left corner of the window :)

    • @TsodingDaily
      @TsodingDaily  ปีที่แล้ว +60

      Thank you so much! I definitely need to spend some time reading the README. There are so many things I'm missing. :D

  • @bashbarash1148
    @bashbarash1148 ปีที่แล้ว +228

    Imagine to debug a C application via C debugger via C debugger to find that problem was in Python

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

      Python is always the problem. It's load bearing.
      I just broke my Linux yet again because it is a Debian and I tried to update libinput because of python, it refused and updated python3 back to match it. (to be fair, I did random pokery with dpkg)
      Why do we have DLL hell in Linux in 2023. Is that Windows XP ?
      maybe it's my fault for using Debian, maybe Debian is stable bugs forever.
      Maybe Linux can't afford having a SxS and becoming a 30GB OS only because I wanted to have 2 versions of libinput.
      Maybe I should just nuke everything and make my own Linux from scratch instead.
      Anyway it's my fault for using Linux to begin with, or wanting to use KDE with Wayland.
      Also, Clang17 needs an Old GCC10 to run.
      Why, why.
      Sometimes I think Windows is better because I don't suffer too much trying to change things and I can't see how bad and shit the code is, so I don't try to fix it.
      It's all Python's fault.
      Why can Debian have 4 different versions of Python3 at base. Why's every thing hanging on libinput, is like libC of KDE.
      Why does the thing that loads shite into the D-bus from the server side needs to be the same as the shite from the KDE/QT side, never mind I don't want to know, maybe they're sharing binary data and pointers.
      Anyway , sorry for the rant.
      And it's python fault , it's all pythons fault .

    • @lorenzocalza9960
      @lorenzocalza9960 11 หลายเดือนก่อน

      @@monad_tcpmove to a rolling release distro or a distro based on fedora. You’ll thank me later :P

    • @pookiepats
      @pookiepats 7 หลายเดือนก่อน +1

      @@monad_tcp in a rage against python I ran a command to eliminate it globally and it broke Ubuntu(WSL), I hate Python's fat hefty arse

    • @mariuszdziem8203
      @mariuszdziem8203 6 หลายเดือนก่อน

      @@pookiepats I hate Python too. I have been taught Pascal, C, C++, and all those languages are kinda the same. But Python is so bad with tabs instead of simply using curly brackets {,}. Readability would be skyrocketing.

    • @pookiepats
      @pookiepats 6 หลายเดือนก่อน

      @@mariuszdziem8203 ashamed to say but when I was only a young ignorant data analyst I would swear by Python’s indentation approach because the vast majority of my work was done in relatively small instances of Jupyter Notebooks.
      But you’re 100% correct-as soon as I graduated into writing actual programs the indentation became a hindrance and source of major frustration.
      TL;DR i write Swift everywhere i used to write Python and my blood pressure is down 30 points

  • @bacon-SG
    @bacon-SG ปีที่แล้ว +106

    13:20 That feeling that all programmers get to feel. "I thought this would be an easy fix, but looks like we have to go deeper"

  • @rootsudosu
    @rootsudosu ปีที่แล้ว +42

    47:20 "we fixed the debugger, now lets fix my application" XD XD

  • @aarovprasad391
    @aarovprasad391 ปีที่แล้ว +124

    This is like watching an artist at work

    •  ปีที่แล้ว +6

      Well you are watching an actual artist.

  • @万宇阳
    @万宇阳 ปีที่แล้ว +138

    Who compiles the compiler? In what text editor the text editor is written? What analyzer is used to analysis the source code of the analyzer? And who's debugging the debugger?

    • @darukutsu
      @darukutsu ปีที่แล้ว +35

      Who comments on comments?

    • @CertifiedDynamite
      @CertifiedDynamite ปีที่แล้ว +43

      As per the LFS installation manual: "To compile a compiler, you will need a compiler."

    • @ace5331
      @ace5331 ปีที่แล้ว +16

      C is written in C and Java is written is Java, and many other languages is written in itself. Eventhough it's understandable, still sounds fascinating 😄

    • @rj7250a
      @rj7250a ปีที่แล้ว +19

      ​@@ace5331the Java std library is written in Java, but the JVM is in C++. An interpreted language can not be self hosted.
      You could run the Java JVM in the C++ JVM, but then you would have to maintain 2 versions, so it would be pointless.

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

      _tsocrates_

  • @aciddev_
    @aciddev_ ปีที่แล้ว +15

    tsodin:
    fix bug in debuger: easy
    write comment message: *imposible.*

  • @ynchen
    @ynchen ปีที่แล้ว +23

    WHAT ARE YOU WORKING ON?
    TRYING TO FIX THE PROBLEMS I CREATED WHEN I TRIED TO FiX THE PROBLEMS I CREATED WHEN I TRIED TO FIX THE PROBLEMS I CREATED WHEN...

  • @ShpirtMan
    @ShpirtMan ปีที่แล้ว +17

    Cool video. As soon as I saw the L in "5L", I knew it's going to be py2 vs py3 issue.

    • @Sloimay
      @Sloimay ปีที่แล้ว +11

      did i just get spoiled in a "debugging the debugger" video

  • @ThatManFromGermany
    @ThatManFromGermany ปีที่แล้ว +17

    Imagine using an electron based debugger frontend in 2023! Thank you for this, this is a master class of "how to approach a problem solution" IRL.

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

      I certainly do. It means my IDE _and_ debugger uses the same interface. The seamlessness is amazing. I use RR, GDB seamlessly together in vs code with the Midas extension. It means all my bookmarking, all my navigation of the code works identically. It makes the process of development exponentially a lot faster than having to manage multiple UI:s for what essentially amounts to the same work flow.

  • @nickdance965
    @nickdance965 ปีที่แล้ว +5

    excited to watch this one! thank you for all the interesting videos and content!

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

    That was great! It's been 2 years of watching you, and I have learned so much from you.

  • @TEHNOTRAHER
    @TEHNOTRAHER ปีที่แล้ว +16

    me: mom can i go to cinema to watch "Inception"
    mom: we have "Inception" at home
    "Inception" at home 7:20

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

      I was just typing this coment and saw this

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

      it made my brain go smooth

  • @lamprospitsillou6325
    @lamprospitsillou6325 ปีที่แล้ว +9

    Would love more of fixing-contibuting to OSS ! ❤️

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

    45:30 The celebration dance made it all worth watching 😂🎉

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

    I like your statusbar, especially the part that shows the folder size 😂😂

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

    13:40 “so maybe it won’t be that deep and that dirty” - me looking at the timer, showing the video is 59:53 long: “it will be deep and dirty”

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

    This is such an awesome find, nice video!

  • @adibozzhanov3101
    @adibozzhanov3101 ปีที่แล้ว +7

    I just spent a whole day staring at SQL queries stored as string literals in a python codebase and seeing the exact same thing happen in a C code base with python as string literals just kind of boiled my brain. Loved every second of this video, thank you for doing that.

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

    "Look how quickly it recomputes its layout, can your Electron do that?" Lmao instant sub

  • @CoderDBF
    @CoderDBF ปีที่แล้ว +34

    You’re like a 40x developer, I couldn’t do in a week what you do in an hour.

    • @TsodingDaily
      @TsodingDaily  ปีที่แล้ว +26

      Tbh, I got really lucky today. It's def not always like that. :D

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

      Sounds like you're just a 0.2x developer. Skill issue

  • @nyyakko
    @nyyakko ปีที่แล้ว +5

    and who's debugging the debugger that is debugging the debugger!?!

    • @teknixstuff
      @teknixstuff 5 หลายเดือนก่อน +1

      You can't debug a human.

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

    That's quite a journey. Great video and thank you for the pull request.

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

    This is honestly a great unintentional tutorial on how to contribute to open source

  • @PwnySlaystation01
    @PwnySlaystation01 10 หลายเดือนก่อน

    This was a fascinating video. Really good

  • @artemiasalina1860
    @artemiasalina1860 7 หลายเดือนก่อน

    With all of the recursive meta-debugging going on it's best practice to make sure you're seated and hold onto something when watching a Tsoding video. I'm still dizzy from watching him develop his Dramatic EDitor in his Dramatic EDitor! It's a good thing he didn't need to debug his debugger while editing his editor in his editor!

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

    It's like watching Bob Ross. Awesome video!

  • @tomaspecl1082
    @tomaspecl1082 ปีที่แล้ว +9

    Who debugs the debugger? The hexdump of memory content and a "real programmer" who speaks machine code fluently.

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

    I get so burnt out with programming these days but I really enjoy watching your programming Tsoding : - )

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

    Have you ever gone through TAOCP? One of the curious things about it is that it tries to teach programming using a bespoke assembly language. Why do this? Because, once you get to the (unwritten) end, you could write a compiler *without* a compile, as the Grace Hopper had to do when she wrote COBOL.

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

    That was a really nice session. Thanks for the video.

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

    It was really nice seeing how to contribute like a REAL PROGRAMERS. thanks tsoding

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

    This was insanely entertaining to watch 😂 lmao
    Thanks for sharing the vid

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

    This was fantastic! Also, very smart fix.

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

    2:52 Debugging the debugger running buggy GUI programs LOL

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

    C++ operators, such a great idea ... I might take up Zig just for not allowing that

  • @luigidabro
    @luigidabro 5 หลายเดือนก่อน

    A GDB debugger with compiled with a clang++ compiler.

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

    I honestly thought ddd was the only graphical frontend for gdb, thanks for showing me gf2, it actually has a nice UI

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

    This question has the same vibes as "what compiles the compiler"

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

    This was a really cool video. Thanks

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

    this was very impressive. great job

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

    this one kinda epic in all means
    IT in its pure natural form

  • @mariuszdziem8203
    @mariuszdziem8203 6 หลายเดือนก่อน

    You're my hero! :) So interesting episode.
    You deserve P70,/P71/P72 thinkpad with Xeon processor with 64/128GB of ram.

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

    look at this MF*, why the f* it even do that - you made my day there

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

      lol, and there's your moment. Actually I think it's because in Python 2, print is a keyword, not a function. So the parentheses that would normally indicate a function call are instead interpreted as a tuple, because it contains comma separated values. Changing it to a single string value just makes the outer parentheses redundant, but that also makes it compatible with both versions.

  • @JakobKenda
    @JakobKenda 7 หลายเดือนก่อน

    and that's why you ship your dependencies alongside your program, boys

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

    This was a thing of beauty.

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

    They: Do you have a gf? 👩‍❤️‍👨
    Me:

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

    So for anyone who never programmed in Python 2 like me, print in Python 2 is not a builtin function but a statement, the code is intepreted as printing a tuple ('(array) ', 5)
    But there's no such thing as a single element tuple, so printing a single string ('(array) 5') doesn't show the *parentheses

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

      There is a single-element tuple, but its syntax looks like: (5,)

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

      @@odomobo thanks for correcting me, I'm still learning Python
      Out of curiosity, what's the use case for single element tuple?

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

      @@vuongnh0607l I don't think there are many use cases, as I think it's mostly there for consistency's sake (so you can create any length of tuple). I don't write a lot of python, so I've never run into a situation where I needed to use it, I just thought it was interesting that it does exist

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

    Loved this one mate, keep it up :)

  • @wijiler5834
    @wijiler5834 ปีที่แล้ว +7

    Epic zozin zession

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

    alternative title:
    FIXING A DEBUGGER WITH ONLY PYTHON?!

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

    Thanks for showcasing gf

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

    I'm guessing print(*args) in python 3 is variadic, so it just runs __repr__ on each of the things in its args (appends the individual string representations), which drops the quotes for the string. While in python 2 it just prints the string representation of the args tuple, which prints the outer brackets and keeps the string wrapped in quotes.

    • @odomobo
      @odomobo ปีที่แล้ว +5

      In python 2, print was a builtin keyword, and in python 3 it became a function. Since it's a keyword in python2, you don't use parens when calling it. However, if you use parens anyhow, the expression on the right becomes a tuple, and the tuple is printed.

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

    I think part of the issue is your GDB is using python 2, but their gf2 expects python 3
    cuz in python 2 the print statements dont need (), so theyre treated as a tuple
    and my gdb (from doing `py import sys; print(sys.version);`) prints python 3.10 and also doesnt have the tuple bug

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

      lol 3 seconds later you figured this python2 vs python3 bug out lmfao

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

    Upon reading the title, I just thought about this.

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

    Wonderful video.

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

    Jajaja. The moment of the true was great

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

    I mean so much can you expect from 155 commits repo

  • @revenevan11
    @revenevan11 7 หลายเดือนก่อน

    It's recursive debuggers all the way down!!!🤯🤣

  • @VinayKumar-vu3en
    @VinayKumar-vu3en ปีที่แล้ว

    Tsoding the type of guy who would debug the debugger (i'd have just moved on to another one).

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

    Damn i subscribed but i never have time to really sit down and watch your videos due to the length. Im sure the content is good from what I've gauged from.the comments

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

    It's nice to be able to just edit your video in two hours

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

    you deserve a medal
    you're too nice

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

    Could you recommend a computer graphics book where they teach the mathematics of 3D rendering, I still don't understand how to obtain the projection matrix?

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

      Hi
      Tsoding developed a 3D graphics library from scratch, where he goes over the mathematics behind rendering objects in 3D.
      th-cam.com/play/PLpM-Dvs8t0Va-Gb0Dp4d9t8yvNFHaKH6N.html
      Maybe some of the episodes in there relating to 3D will be useful for you.

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

    Next Episode... "Wait, who compiles the compiler ?!"

  • @user-mj1wg5oz2b
    @user-mj1wg5oz2b ปีที่แล้ว +2

    for everyone that just want to see the highlight; 45:31

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

    This is why you use standard containers instead of rolling your own

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

      ikr? this has to be one of the w̶o̶r̶s̶t̶ most curseds C++ codebase ive ever seen. i bet this was written by people who thinks C++ is C with classes, i mean, you can clearly see it, they even manage the memory themselves by hand. imagine doing that in 2023.

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

      @@nyyakkowhat do you suggest?

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

      you meant the best C++ codebase

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

      @@Alsexarensimply use what the standard already offers to you. theres barely any reason to come up with generic containers from scratch, and if you do try to come up with one theres a big chance you will get it wrong

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

      @@TsodingDailyKappa

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

    I wanna reach this level of mastery.. You are the best 🎉.

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

    there's a funni @ 28:41

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

    He really debugged the debugger

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

    This video is programming porn. Top level wisdom.

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

    zozin asking the real questions here

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

    A similar question comes to mind but every programmer knows I think including me. Who is compiling other compilers if we go whether no software exists? A funny question but it's important.

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

      You start with writing machine code by hand to create an assembler to assemble a compiler to compile a better compiler :)
      It's the compilation centipede.

    • @0xbinarylol
      @0xbinarylol ปีที่แล้ว

      @@andrejsk6211 ya

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

    I'm learning how to code a complier by Porth, but I have a question, why all the tutorials on this topic start doing an algebra compiler, and then start doing the things like functions, variables...? Btw I love your videos! Would be amazing if in a future you do some compiler relationed content.

    • @DFPercush
      @DFPercush ปีที่แล้ว +6

      Maybe it's just because parsing algebraic expressions with the proper order of operations is a natural part of generating an abstract syntax tree. Usually, function calls and control flow take lower precedence than algebraic expressions, so you can just take your expression parser and add those things on the end. Of course you can also use a parser generator like Lex and Yacc to describe your language using pattern matching, kind of like regular expressions.

  • @criticalpoint2779
    @criticalpoint2779 7 หลายเดือนก่อน

    Debugging a buged debugger with a buged debugger souds like governments in action

  • @malusmundus-9605
    @malusmundus-9605 ปีที่แล้ว

    This is why I just use gdb from the command line... you add all that extra complexity for the gui and you get bugs... and then you waste time.

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

      You're seriously calling an explicitly recreational programming session a waste of time...? Recreational programming that also happens to improve upon a piece of OSS. A piece of OSS he actually likes, at that.
      Are you just e-peening? Are you simply a bit of a twat? What am I missing?

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

    What was that? I just watched Inception 2, but with art house flavor and budget.

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

    The nest is a lot

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

    Great stream!! (And it is not a Rust one)

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

    who's compiling the compiler

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

    Success!

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

    this is goldpearl
    btw, python is the worst languange. You can lose so much time with a dynamic language with strong typing

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

    Insane video

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

    great video!

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

    ok this was epic

  • @ErikBongers
    @ErikBongers 8 หลายเดือนก่อน

    Either this is a great example of why overloaded operators are bad - they hide effects and they may not do what you expect them to do.
    Or it's a great example of why you shouldn't pass the address of the first value of an array as the beginning of the array, in C++.

    • @TsodingDaily
      @TsodingDaily  8 หลายเดือนก่อน

      Yeah, there is definitely a lesson somewhere there, but we don't know exactly what it is.

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

    what is the app used for zooming in and out?

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

    You should also try using seer, or the classic ddd

    • @valbogda5512
      @valbogda5512 9 หลายเดือนก่อน

      Thanks. Watching this video I was trying to remember what was the name of the graphical frontend I used to use lotta years ago. I never realised it was GNU's own frontend. Gotta love the aesthetics of Motif :).

  • @ЯрославСвиридов-в7б
    @ЯрославСвиридов-в7б ปีที่แล้ว

    You are so cool, man

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

    Hello,
    why you don't explain the Encrypt Algorithme and How BruteForce works

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

    10:25 is that true? Does C spec guaeantee that &arr[0] is a noop? I'm not convinced
    I think it is deferenced (using «as if rule» of course) either way. &arr[0] => &(arr[0]) => &(*(arr + 0)) => &*arr. Square brackets have higher precedence, so it's not (&arr)[0] which would be a noop in C indeed

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

      &arr[0] is most likely a LEA instruction on x86. It doesn't try to access the memory of the array, just computes the address of the 0th element. During the compilation process, in an abstract sense, arr[0] is an l-value on its own, which you then take the address of. But the expression as a whole only has to produce an address, not the value at that address, so there's no reason to MOV anything there or use that memory as an operand, unless you do exactly that.

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

      @@DFPercush truly. But this seems not portable 😄

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

      @@alurma Try it on godbolt on an arm or mips cpu. The operator overload is the only reason it would access the array. But if you want to be safe, you can also just pass the array variable itself, which will decay to a pointer in C. In C++ it will also decay to a pointer, unless you're calling a template function that expects a reference to an array of size , but in that case the size will be known and one would hope it wouldn't try to dereference out of bounds elements. Sorry if I'm making it too complicated.
      Fun fact: in VB6 if you wanted to call a C library (including DirectX) and pass it an array, you had to pass array[0] because it passed everything by reference, so array[0] is how you got the address of the beginning of the array. That was the only way to do it. I'm not sure I ever tried to pass an empty array though.

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

      @@DFPercush yea, the usual "passing array so it decays to a pointer" seems simpler :) Interesting comment on VB6 :)

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

    FUCKING GREAT

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

    The root cause at 41:28

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

    45:34 first try MF XD

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

    Amazing video just one quest why does it say porn folder in the bottom right

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

    These random german expressions are gold! Are you from germany or have you just caught up some words?

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

    That feeling finding out it's the python that caused it 😂

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

    Really krasava

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

    if is that so, who makes the clown laugh? 😔

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

    Nice session Mr. Tsoding, but where github…