CS 631-01 Systems Foundations — Meeting Summary¶
Date: Feb 24, 2026
Time: 08:06 AM Pacific Time (US and Canada)
Meeting ID: 870 0988 0761
Quick Recap¶
- The session focused on debugging techniques and tools for C and Rust, with preparation for upcoming assembly language work.
- Greg demonstrated GDB and LLDB across platforms, including the Beagle board, and highlighted challenges debugging Rust on macOS.
- He introduced fundamentals of RISC-V assembly and outlined how it will be used in upcoming labs.
- The class discussed the value of understanding both high-level languages and low-level assembly, as well as the role and limits of coding agents in modern development.
- Students were encouraged to manually type examples and build deep mental models, even when using automated tools.
- The meeting concluded with environment setup instructions and a preview of RISC-V assembly content.
Next Steps¶
For all students¶
- Set up GDB on the Beagle machine (or in the RISC-V VM) and be able to debug C code, following the Dev Environment lecture notes.
- Engage with and complete Project 1 by the due date (tomorrow night).
For students who have not set up SSH and Beagle¶
- Complete SSH configuration and Beagle 5 machine setup as described in the Dev Environment lecture notes.
For Greg (Instructor)¶
- Investigate and resolve LLDB issues for Rust debugging on macOS; post updated instructions.
- Request and install Rust GDB on the Beagle machine for class use.
- Post an update on Rust debugging status (GDB/LLDB) after issues are resolved.
- Publish the upcoming RISC-V assembly lab by Thursday (due next week).
Summary¶
C and Rust Debugging Techniques¶
- Greg reviewed debugging practices for C and Rust and planned hands-on exercises.
- Project 1 guidance:
- Expression mode is less challenging than script mode and allows manageable switching between C and Rust.
- Script mode is intentionally harder (despite fewer points) due to:
- Command-line processing
- File loading
- Scanner and parser changes
- Environment support for evaluation
Importance of Manual Coding Practice¶
- The session emphasized building strong mental models through manual problem-solving.
- Coding assistants (e.g., CloudMD) can be helpful, but students should:
- Avoid over-reliance on automation.
- Focus on learning one language at a time rather than learning Rust and C simultaneously.
Cloud Code Usage Modes¶
- Greg demonstrated Cloud Code’s:
- Regular mode
- Safe mode
- Bypass permissions mode
- Key points:
- Plan before using Cloud Code; it is powerful and can act aggressively.
- Context windows and token limits matter: models can accept large inputs, but output length is comparatively constrained.
Debugging Tools in Systems Programming¶
- Debuggers are essential for understanding and troubleshooting system-level behavior, especially in assembly.
- The “three-party” model was reviewed:
- Debugger
- Target application
- Kernel
- The Project One Starter Code (in the in-class repo) enables independent experimentation with debugging tools.
Debugging Tools and RISC-V Assembly¶
- GDB and LLDB workflows were demonstrated:
- Setting breakpoints
- Stepping through code
- Inspecting variables
- Known issues:
- Rust debugging on macOS and the Beagle board requires further fixes; updates will follow.
- RISC-V preview included:
- Instructions, registers, and memory concepts
- A lab assignment on RISC-V assembly will be released next week.