Hey you. Do you like low level programming? would you like to contribute to a large and well established project? Because I'm always looking to help new contributors getting started on GDB! It uses C++, but you may also end up needing to remove abstraction layers, so there's tons of things not-C++ to think about, if you want to.

I know that contributing to the GNU Debugger may sound like it's something that would be incredibly hard, or that you need ungodly amounts of knowledge to improve, because that's literally how I felt before sending my first patch, but the truth is, the project was developed by people (humans and otherwise), so silly bugs will abound, and simple oversights will need correcting. There is stuff for every level of programmer to do, from "I've worked on the kernel for 20 years" to "this is my 1st year in college and I'm not scared of large projects"

And here's the kicker, I want more contributors to the GDB project. So, if you are interested in this at all, you can hit me up and I will do my best to help you get setup to contribute (from compiling locally, to setting up git-send-email, running tests) and then help you understand the bugs, the code, and how to make a good commit message (to GDB's standards anyway). I've literally done code-walks with other mentees in the past, I eager to share as much of my experience as you would like to have! and I do my best to be ADHD/autistic friendly, since I'm AuDHD myself and would have really loved a mentor that did that for me in the past...

So... yeah, don't be afraid to reach out!

EDIT: Hi everyone! I made a poll on why people don't contribute, please vote and share here:
https://kitsunes.club/notes/aas2it3uwq I'm editing this so that everyone that liked and boosted the post notices and votes on the poll.
Gwen, the Fops :therian::itits: (@gwenthekween)

Hi Fedi verse, it is I the GDB fops again! I want to collect data about why people aren't contributing to GDB. If you haven't contributed to GDB, please take a moment to vote and boost for reach. This poll accepts multiple answers, but please only vote on the ones that would actually get you to try to contribute if they were changed This data will be used to understand and hopefully figure out ways to improve the project for people who would like to participate. Feel free to expand on your answer! Why have you not contributed? (📊) RE: Hey you. Do you like low level programming? would you like to contribute to a large and well established project? Because I'm always looking to help new contributors getting started on GDB! It uses C++, but you may also end up needing to remove abstraction layers, so there's tons of things not-C++ to think about, if you want to. I know that contributing to the GNU Debugger may sound like it's something that would be incredibly hard, or that you need ungodly amounts of knowledge to improve, because that's literally how I felt before sending my first patch, but the truth is, the project was developed by people (humans and otherwise), so silly bugs will abound, and simple oversights will need correcting. There is stuff for every level of programmer to do, from "I've worked on the kernel for 20 years" to "this is my 1st year in college and I'm not scared of large projects" And here's the kicker, I want more contributors to the GDB project. So, if you are interested in this at all, you can hit me up and I will do my best to help you get setup to contribute (from compiling locally, to setting up git-send-email, running tests) and then help you understand the bugs, the code, and how to make a good commit message (to GDB's standards anyway). I've literally done code-walks with other mentees in the past, I eager to share as much of my experience as you would like to have! and I do my best to be ADHD/autistic friendly, since I'm AuDHD myself and would have really loved a mentor that did that for me in the past... So... yeah, don't be afraid to reach out! EDIT: Hi everyone! I made a poll on why people don't contribute, please vote and share here: https://kitsunes.club/notes/aas2it3uwq I'm editing this so that everyone that liked and boosted the post notices and votes on the poll.

KitsuClub
(I just posted this cause I noticed I hadn't been very open about this yet, and a complete post like this is easy to pin ​​ )
@gwenthekween I've never used gdb but I do have experience in C programming. Maybe I can find some time on rainy days to help ... 🤔
@gwenthekween hey!! I'd love to get into this! I'm a C++ dev. I just quit my job and I've been looking for projects to dive into!
@feline Cool! Have you used GDB directly? Do you have anything in mind that you'd be interested in contributing?
@gwenthekween yes definitely I've used it directly. I work on C++ codebases and it's not my preference to interface with it through an IDE or anything like that. I'd be interested to know where help is most needed. I'm interested in transitioning to embedded development so building system-level knowledge would be neat for me!
@feline I think what we need the most is user feedback to be completely honest. As long time developers, we end up learning a lot of what GDB can do and how to work around what it can,t and it's good to hear from people who don't have that kind of experience.

That said, we have a list of bugs marked as "good first bug" that you could take a look at[1]. Taking a quick look over these, bugs 16269, 17548 and 29784 are pretty gdb-specific (how we handle commands) but seem easy; and bugs 21814 and 17346 have more to do with dealing with the binary directly (both of them involve dealing with some disassembler) (yes, we have more than one disassembler, I hate it so much)

Reference is screen-reader unfriendly
[1]
https://sourceware.org/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=SUSPENDED&bug_status=WAITING&bug_status=REOPENED&keywords=good-first-bug%2C%20&keywords_type=allwords&list_id=92887&order=Importance&product=gdb&query_format=advanced
Making sure you're not a bot!

@gwenthekween hey! this is something i would be interested in in the near future!
@87flowers awesome! When you're interested, don't be afraid to reach out! If you already work with GDB, we're always eager to hear what users feel like is missing, and if not, our bug tracker has a (somewhat outdated) good-first-bug keyword that you could look for inspiration!
@gwenthekween hey hey! Looks like awesome opportunity. How to start?
@alex27 I'd say we start with finding something you're interested in working on. Do you already use GDB? is there something you feel like is missing from it?

If not, you can check a list of good first issues, and if nothing speaks to you, you can remove that keyword (we unfortunately don't tag things with it as often as we should)
https://sourceware.org/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=SUSPENDED&bug_status=WAITING&bug_status=REOPENED&keywords=good-first-bug%2C%20&keywords_type=allwords&list_id=92888&order=Importance&product=gdb&query_format=advanced
Making sure you're not a bot!

@gwenthekween That search is gonna be be a hard one, GDB is such a huge and complicated piece of software, I can’t even use it without a graphical frontend, and not for the lack of trying. It’s so daunting… but I hope you find someone! Hope my boost helps.
@fuchsiii For the time being we're not in need of developers, I jsut want to extend my hand really, but thanks for boosting

And also, is there something that we could do to make using GDB without a graphical front end less daunting? In case you haven't tried it, there is a TUI option (with several layouts, even), but making the CLI friendlier would be a great step forward

@gwenthekween

heya, its really cool for you to be reaching out like this. I might submit a patch to GDB at some time in the future since I use it a lot.

re: mailing lists for patches
have you looked into gerrit?

@k4lizen we have done a Gerrit experiment before (here's a blog post on how it was setup: https://blog.sergiodj.net/posts/installing-gerrit-and-keycloak/). It has been completely abandoned since...

The unfortunate fact of the matter is that the long time developers are too used to email (I'm including myself here) and the flexibility it gives us, and tooling on top of it would end up constraining us... If there isn't something that can be fully operated both in the webpage and fully through email, it'll be a very hard sell...
Installing Gerrit and Keycloak for GDB | Yet Another Me

@gwenthekween oooooo, that sounds really cool! i probably shouldn't pick up a new Thing straight away or i will context switch myself out of getting a single thing done but it would be very cool to learn about how debuggers work
@kirakira gdb is one beast of a project. Contributing to it to understand how debuggers work is like trying to understand how CPUs work by looking at a modern x86-64 professor. You can do it, but there's so many historical things that no longer make sense, and it must work on so many situations, that it's hard to figure out what is actually necessary versus what's fluff, leftover, or compatibility

I myself an still quite hazy on several parts, and some of them I'm straight up scared of looking into, for fear of going Lovecraft mad.....

All that said, if you want to take a stab at it anyway, I c can try to help with what I know :3

@gwenthekween it is awesome to see such an offer, i.e. mentoring new contributors! the world could use much more of that. but it takes a *lot* of work and effort, so applause for offering it so freely and heartily!

  

@gwenthekween Sorry for the ignorance but how does gdb and lldb compare nowadays? I use clang for day to day work so lldb is naturally what I reach for and I've ignorantly kind of felt it's the "new thing making gdb obsolete", but... I'm not so sure it is, is it? I have admittedly not used gdb a lot at all.
@SonnyBonds I'm the other way around, I first learned to use gdb and so never tried lldb.

I would guess that lldb is less feature complete, simply because there's a lot of things to implement to just have basic functionality,let alone adding bells and whistles... but that's just a guess, I'd need to see what LLDB can do to see what's missing (if anything)
@gwenthekween Got it, thanks for answering. :)
@gwenthekween This sounds cool! And hi 👋
@gwenthekween I'd love to be a contributor, and I'm afraid I don't have any time to be able to reserve, I spend most of my free time playing with my kids. Good lock finding someone 💜
@gwenthekween hiii! i am super interested!
@catilac hii! Awesome!

I'll start by asking, what kind of experience do you have with GDB? Is there something you'd like to change about it (either as something missing from your workflow, or a reason why you may have been put off from using it)?
@gwenthekween i was just using it yesterday, but i don't have the deepest knowledge of it. it just seems like a really fun system project to work on
@catilac it definitely is very fun!

If you don't have something you'd like to improve, there are 2 easy ways to start: You can try to run the testsuite in your computer and see if there are any failures that look easy to solve, or you can check our bug tracker for bugs with the keyword "good-first-bug".

Let me know which you'd like and we can go from there


screen reader unfriendly link to good-first-bug query on GDB's bugtracker:
https://sourceware.org/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=SUSPENDED&bug_status=WAITING&bug_status=REOPENED&keywords=good-first-bug%2C%20&keywords_type=allwords&list_id=92931&order=Importance&product=gdb&query_format=advanced
Making sure you're not a bot!

@gwenthekween amazing! thank you so much 🐢
@catilac hey! Just checking in, did you have time to check? Would you like some help with analysing or building GDB or something?

if you plan to do it later, no worries :)
@gwenthekween Ohh not quite! But it is on my list 😈
@gwenthekween I love low level programming, know C programming but not C++. I don't know how different those two language are. I would love to learn C++ to contribute to GDB.
@gwenthekween this sounds real fun, and just about what i've been meaning to do. would love to help out and learn :)
@gwenthekween I rarely use GDB at all, but your post caught my eye. I have occasionally wondered what GDB could do for me, in terms of making me more effective and letting me do things I didn't know I could do. Surely if it's a popular tool, I must be missing out on something?
@ruawhitepaw If you use a debugger at all, I would need to compare what you use to GDB to say for certain (especially since many IDE debuggers are actually using GDB under the hood), but off the top of my head, main useful features of gdb are:

* lets you stop the program when a variable changes
* lets you stop the program on a specific location (only when some conditions are met, if you'd like conditions)
* lets you examine the stack of calls until the current location; and letting you move up and down those calls to examine what local variables look like
* (with some asterisks) lets you unwind the execution to see what happened previously
* lets you control the execution of threads to some extent (though manual and somewhat time consuming), allowing you to manually create race conditions
* lets you change the state of the program, to quickly test solutions without recompiling, or force unreliable bugs to happen
* lets you call arbitrary functions of the program, so you know what results would happen or you can manually try some setup as a fix attempt with no recompilation
* lets you explore the control flow and structures of the program (if it has debug information), so you can reverse engineer easier, or at least coalesce fragmented structure definitions into one single screen
* when using gdbserver as well, you can debug something on machine/container A from machine/container B (please don't expose this to the internet though, there is no security whatsoever and anyone connecting has 3 full programming languages at their disposal)

I'm sure there's more that I even used myself, but I can't think of them since I've been on vacation for a week lol
@gwenthekween really interested! i use gdb for a couple of things, and now possibly being able to contribute to it is a really exciting prospect!
@84smitch Hi! Awesome that you want to contribute ​

My first few questions are: Do you already know you'd like to fix? if you already have something in mind, it'll always be more interesting to you, and I can have an idea of how bad it would be to solve (so that you don't end up in a multi-year rabbit hole for patch 1)
Also, what is your experience and comfort level with c/c++ and it's build systems? (we use autotools and makefiles, if that makes a difference)
And what operating system would you be using to write your contribution (I never tried contributing with Windows ,so I'd be very lost on dependencies and how to build ,but I can still be of help for the code itself)