Skip to content

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.