- Music: / @nu11_ft - The GDB frontend for Linux: github.com/nakst/gf
Пікірлер: 183
@nakst65289 ай бұрын
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 :)
@TsodingDaily9 ай бұрын
Thank you so much! I definitely need to spend some time reading the README. There are so many things I'm missing. :D
@bashbarash11489 ай бұрын
Imagine to debug a C application via C debugger via C debugger to find that problem was in Python
@monad_tcp6 ай бұрын
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 .
@lorenzocalza99605 ай бұрын
@@monad_tcpmove to a rolling release distro or a distro based on fedora. You’ll thank me later :P
@pookiepatsАй бұрын
@@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
@mariuszdziem820310 күн бұрын
@@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.
@pookiepats10 күн бұрын
@@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-SG9 ай бұрын
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"
@rootsudosu9 ай бұрын
47:20 "we fixed the debugger, now lets fix my application" XD XD
@aarovprasad3919 ай бұрын
This is like watching an artist at work
9 ай бұрын
Well you are watching an actual artist.
@user-bn4wn7ll3e9 ай бұрын
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?
@darukutsu9 ай бұрын
Who comments on comments?
@CertifiedDynamite9 ай бұрын
As per the LFS installation manual: "To compile a compiler, you will need a compiler."
@ace53319 ай бұрын
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 😄
@rj7250a9 ай бұрын
@@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.
@hetias9 ай бұрын
_tsocrates_
@ynchen9 ай бұрын
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...
@TEHNOTRAHER9 ай бұрын
me: mom can i go to cinema to watch "Inception" mom: we have "Inception" at home "Inception" at home 7:20
@thakeenathees23429 ай бұрын
I was just typing this coment and saw this
@apenaswellignton9 ай бұрын
it made my brain go smooth
@ThatManFromGermany9 ай бұрын
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.
@simonfarre49079 ай бұрын
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.
@ShpirtMan9 ай бұрын
Cool video. As soon as I saw the L in "5L", I knew it's going to be py2 vs py3 issue.
@Sloimay9 ай бұрын
did i just get spoiled in a "debugging the debugger" video
@aciddev_9 ай бұрын
tsodin: fix bug in debuger: easy write comment message: *imposible.*
@isaacdiaby9 ай бұрын
45:30 The celebration dance made it all worth watching 😂🎉
@nickdance9659 ай бұрын
excited to watch this one! thank you for all the interesting videos and content!
@bashbin9 ай бұрын
That was great! It's been 2 years of watching you, and I have learned so much from you.
@apenaswellignton9 ай бұрын
and who's debugging the debugger that is debugging the debugger!?!
@realGBx649 ай бұрын
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”
@Gordonfreems9 ай бұрын
This is such an awesome find, nice video!
@CoderDBF9 ай бұрын
You’re like a 40x developer, I couldn’t do in a week what you do in an hour.
@TsodingDaily9 ай бұрын
Tbh, I got really lucky today. It's def not always like that. :D
@khuntasaurus888 ай бұрын
Sounds like you're just a 0.2x developer. Skill issue
@lamprospitsillou63259 ай бұрын
Would love more of fixing-contibuting to OSS ! ❤️
@rasulseidagul9 ай бұрын
This was insanely entertaining to watch 😂 lmao Thanks for sharing the vid
@HarperLee18409 ай бұрын
That's quite a journey. Great video and thank you for the pull request.
@PwnySlaystation014 ай бұрын
This was a fascinating video. Really good
@theherk9 ай бұрын
That was a really nice session. Thanks for the video.
@tomaspecl10829 ай бұрын
Who debugs the debugger? The hexdump of memory content and a "real programmer" who speaks machine code fluently.
@andrewkosenko27579 ай бұрын
I like your statusbar, especially the part that shows the folder size 😂😂
@MrChester1149 ай бұрын
This is honestly a great unintentional tutorial on how to contribute to open source
@mariuszdziem820310 күн бұрын
You're my hero! :) So interesting episode. You deserve P70,/P71/P72 thinkpad with Xeon processor with 64/128GB of ram.
@luigidabroКүн бұрын
A GDB debugger with compiled with a clang++ compiler.
@prodbyfaith9 ай бұрын
"Look how quickly it recomputes its layout, can your Electron do that?" Lmao instant sub
@cheebadigga40929 ай бұрын
This was fantastic! Also, very smart fix.
@kir4agi9 ай бұрын
Loved this one mate, keep it up :)
@diverso36119 ай бұрын
this was very impressive. great job
@artemiasalina1860Ай бұрын
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!
@sitryk33629 ай бұрын
I get so burnt out with programming these days but I really enjoy watching your programming Tsoding : - )
@ariftunahandeniz60789 ай бұрын
It's like watching Bob Ross. Awesome video!
@exvimmer9 ай бұрын
This was a really cool video. Thanks
@fluffyribbit18819 ай бұрын
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.
@adibozzhanov31019 ай бұрын
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.
@astral67499 ай бұрын
This question has the same vibes as "what compiles the compiler"
@JakobKendaАй бұрын
and that's why you ship your dependencies alongside your program, boys
@monsieuralexandergulbu36789 ай бұрын
It's nice to be able to just edit your video in two hours
@Stroopwafe19 ай бұрын
I honestly thought ddd was the only graphical frontend for gdb, thanks for showing me gf2, it actually has a nice UI
@kaksisve40129 ай бұрын
They: Do you have a gf? 👩❤️👨 Me:
@SimGunther9 ай бұрын
2:52 Debugging the debugger running buggy GUI programs LOL
@akkudakkupl9 ай бұрын
This was a thing of beauty.
@jordanmcconnon62149 ай бұрын
Thanks for showcasing gf
@nebulus39199 ай бұрын
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.
@DFPercush9 ай бұрын
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.
@michalbotor9 ай бұрын
you deserve a medal you're too nice
@salim4449 ай бұрын
It was really nice seeing how to contribute like a REAL PROGRAMERS. thanks tsoding
@leonardoquiroga68509 ай бұрын
great video!
@teslax92439 ай бұрын
Wonderful video.
@MyWatermelonz9 ай бұрын
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
@ZoraAlven9 ай бұрын
this one kinda epic in all means IT in its pure natural form
@wijiler58349 ай бұрын
Epic zozin zession
@mondevictor9 ай бұрын
Insane video
@criticalpoint2779Ай бұрын
Debugging a buged debugger with a buged debugger souds like governments in action
@kyuantym9 ай бұрын
Upon reading the title, I just thought about this.
@Ubervisor_9 ай бұрын
zozin asking the real questions here
@stevenriofrio79639 ай бұрын
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?
@prasannas32199 ай бұрын
Hi Tsoding developed a 3D graphics library from scratch, where he goes over the mathematics behind rendering objects in 3D. kzfaq.info/sun/PLpM-Dvs8t0Va-Gb0Dp4d9t8yvNFHaKH6N Maybe some of the episodes in there relating to 3D will be useful for you.
@mypegionworld76129 ай бұрын
I wanna reach this level of mastery.. You are the best 🎉.
@veritas70109 ай бұрын
I mean so much can you expect from 155 commits repo
@tapion19988 ай бұрын
These random german expressions are gold! Are you from germany or have you just caught up some words?
@vuongnh0607l9 ай бұрын
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
@odomobo9 ай бұрын
There is a single-element tuple, but its syntax looks like: (5,)
@vuongnh0607l9 ай бұрын
@@odomobo thanks for correcting me, I'm still learning Python Out of curiosity, what's the use case for single element tuple?
@odomobo9 ай бұрын
@@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
@SingleTheShot9 ай бұрын
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
@SingleTheShot9 ай бұрын
lol 3 seconds later you figured this python2 vs python3 bug out lmfao
@KunalDawn9 ай бұрын
look at this MF*, why the f* it even do that - you made my day there
@DFPercush9 ай бұрын
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.
@ian30849 ай бұрын
C++ operators, such a great idea ... I might take up Zig just for not allowing that
@user-kp6ir4ih9s9 ай бұрын
You are so cool, man
@AlguienMas5559 ай бұрын
Jajaja. The moment of the true was great
@mbarrio9 ай бұрын
Success!
@inferior28849 ай бұрын
This is why you use standard containers instead of rolling your own
@apenaswellignton9 ай бұрын
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.
@djscratchcat4749 ай бұрын
@@apenaswelligntonwhat do you suggest?
@TsodingDaily9 ай бұрын
you meant the best C++ codebase
@apenaswellignton9 ай бұрын
@@djscratchcat474simply 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
@apenaswellignton9 ай бұрын
@@TsodingDailyKappa
@b4mbus609 ай бұрын
what is the app used for zooming in and out?
@postmodernist18489 ай бұрын
He really debugged the debugger
@revenevan11Ай бұрын
It's recursive debuggers all the way down!!!🤯🤣
@cedric17319 ай бұрын
What caught me off guard was that you were using scheisse so often. Do you use this word in Russian, too?! As far as I knew it is German (written scheiße...).
@nickdance9659 ай бұрын
there's a funni @ 28:41
@Czeckie9 ай бұрын
ok this was epic
@blackhaze38569 ай бұрын
This video is programming porn. Top level wisdom.
@rodelias93789 ай бұрын
Great stream!! (And it is not a Rust one)
@potatopassingby11489 ай бұрын
alternative title: FIXING A DEBUGGER WITH ONLY PYTHON?!
@bashbarash11489 ай бұрын
What was that? I just watched Inception 2, but with art house flavor and budget.
@ALG3979 ай бұрын
Hello, why you don't explain the Encrypt Algorithme and How BruteForce works
@motyakskellington77239 ай бұрын
who's compiling the compiler
@user-mj1wg5oz2b9 ай бұрын
for everyone that just want to see the highlight; 45:31
@johanngambolputty53519 ай бұрын
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.
@odomobo9 ай бұрын
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.
@an0nsaiko8909 ай бұрын
Next Episode... "Wait, who compiles the compiler ?!"
@replikvltyoutube37279 ай бұрын
The nest is a lot
@filippanek94849 ай бұрын
Nice session Mr. Tsoding, but where github…
@sonuaryan52879 ай бұрын
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.
@andrejsk62119 ай бұрын
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.
@sonuaryan52879 ай бұрын
@@andrejsk6211 ya
@romandobra31519 ай бұрын
Really krasava
@caiodavi98299 ай бұрын
tsoding, have you been to ICPC world finals?
@TsodingDaily9 ай бұрын
Nah, only semi-finals. I'm not really good at competitive programming, sorry. :D
@eazypeazy85599 ай бұрын
FUCKING GREAT
@wellhiiguess23519 ай бұрын
Amazing video just one quest why does it say porn folder in the bottom right
@rootsudosu9 ай бұрын
29:30 XD XD
@XDjUanZInHO9 ай бұрын
You should also try using seer, or the classic ddd
@valbogda55123 ай бұрын
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 :).
@VinayKumar-vu3en9 ай бұрын
Tsoding the type of guy who would debug the debugger (i'd have just moved on to another one).
@anon-fz2bo9 ай бұрын
billion iq question
@chriscoyc9 ай бұрын
if is that so, who makes the clown laugh? 😔
@michalbotor9 ай бұрын
debugging is hell
@rootsudosu9 ай бұрын
45:34 first try MF XD
@malusmundus-96059 ай бұрын
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.
@hedlund9 ай бұрын
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?