RSoC: Implementing ptrace for Redox OS - part 8 - The finale
By jD91mZM2 on
Introduction
Bonjour le monde! Another week, another- hold on. It’s been two weeks. Time flies, doesn’t it? Last week I was sadly on vacation and couldn’t devote much time to Redox, but this week I’ve been back!
Most of my work this week has been about GDB. I’ve asked around a little about porting Redox OS in the #gdb IRC channel on freenode, and had a poll about which way I should go forward: Port GDB or create my own GDBserver from scratch in Rust. The votes have been received, and the answer was:
Building a GDB server in Rust
The GDB Remote Protocol is incredibly well-documented and a pleasure to work with. GDB is really compatible with all kinds of targets, using new features only on the targets that explicitly supports them.
I created the gdb-protocol library for parsing the main structure over GDB packets and performing checksum verifications. The actual contents of the packets isn’t interpreted currently. Then I started work on a “gdbserver” program (in rust, still) that aims to support both x86_64 Linux and Redox OS.
Detect exits
The RFC now specifies
PTRACE_STOP_EXIT
and my fork of the kernel implements it. Robert O’Callahan, programmer
at Mozilla who works on the rr
debugging utility suggested this
idea, as apparently it’s very useful to be able to inspect the process
state before exit. Huge thanks to him for his input, it’s incredibly
valuable. I will send out a merge request for the final changes soon,
and probably get the RFC merged.
Final round up
My RSoC period will unfortunately end soon, together with the summer vacation from school. This means I’ll be unable to create patches as rapidly and should spend the final few days to publish everything and make sure everything is somewhat working. It’s been a great summer and I’m really happy to have gotten this opportunity again. Goodbye for now, everyone!