CS 315-01 Lecture/Lab — Meeting Summary (Fall 2025)
Date: Sep 03, 2025
Time: 05:18 PM Pacific Time (US and Canada)
Meeting ID: 886 4953 2573
Quick Recap
Greg provided an overview of assembly language and the machine execution model.
He demonstrated how to use GDB to debug assembly and discussed how C code translates to assembly and then to machine code.
He emphasized prototypes, naming conventions, calling conventions (register usage), and stack discipline.
The session concluded with guidance on Git repository management, troubleshooting access to a test repository, and resolving formatting issues related to a task involving projections and spaces.
Next Steps
Students should complete the implementation of the “Mall 4” function in assembly.
Students should ensure GDB is properly configured and working.
Students should push completed code to their repositories.
Students should review GDB guides for future use.
Students with unresolved issues should attend office hours tomorrow.
Detailed Summary
Assembly Language and Machine Execution
Greg outlined the structure of assembly language:
Instruction format, operands, and registers
Labels and assembler directives
He reviewed system components:
CPU, memory, instruction storage and execution
He emphasized that understanding the machine model is essential for reasoning about programs at the assembly level.
GDB Assembly Debugging Overview
Greg demonstrated basic GDB usage for assembly:
Setting breakpoints, stepping through instructions, examining registers
He noted that machine code imposes strict instruction formats reflected in assembly.
Memory inspection in GDB will be covered in more detail later.
He intended to review the provided repository code structure, but the transcript ended before that explanation.
C-to-Assembly Translation
Greg described how C code becomes assembly and then machine code—ultimately, all code runs as machine code.
Key C/assembly interoperability points:
Function prototypes and naming conventions to avoid symbol conflicts
Argument passing in registers and return values
A single set of 32 registers (on the target architecture)
Using the stack to save/restore registers across function calls
He provided an example of implementing a C function in assembly.
GDB Setup and Workflow
Greg walked through configuring and using GDB:
Creating a .config.gdb directory
Setting breakpoints and stepping through code
Common GDB commands for assembly-level debugging
Students were instructed to:
Clone their lab repository
Set up GDB and run the auto-grader
Greg and June planned to verify GDB setup with students and run auto-graders to review results.
GDB Tutorial Walkthrough
Greg guided William through:
Verifying code correctness
Cloning the test repository
Setting breakpoints and stepping through assembly functions
He encouraged ongoing use of GDB guides and practicing core commands.
Git File Management and Debugging
Greg demonstrated Git best practices:
Keep repositories clean by removing build artifacts (e.g., object files, executables)
Useful commands: git status, git rm, git commit -a
Debugging reminders:
Use breakpoints strategically
Use the return command where appropriate to step out
He addressed a GitHub access issue and suggested a temporary workaround.
Test Repository Access Troubleshooting
The team investigated test repository access and configuration issues:
Email registration and repository visibility problems
Checking the test directory and using tab completion
The repository needed to be re-added; Greg advised avoiding the use of “dash 2 E” in the configuration.
Action items:
Create a test file
Configure GDB correctly in the lab environment
The group worked through formatting and submission issues for a task involving projections and spaces:
Verified the auto-grader configuration directory
Resolved a test directory error
Follow-up plan:
Students with questions or issues should attend office hours
Greg will review a presentation and ensure all slides are included
Resources
GDB guides and references (students are encouraged to read and practice)
Course repositories and auto-grader setup in the lab environment
Back to top