Skip to content

Docker-based development and debugging via VS Code for HPCA (CS 6290)

Notifications You must be signed in to change notification settings

awpala/cs-6290-hpca-setup-and-debugger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CS 6290 (HPCA) Docker + VS Code Project Setup and Debugger

Introduction

This repository is a collection of resources pertaining to setting up the SESC application for projects in OMSCS course High Performance Computer Architecture (HPCA), CS 6290.

The net result is a Docker-based development environment for editing, running, and debugging the SESC app, summarized as follows:

CAVEAT: This setup assumes a local x86-based client/host device. Otherwise, if using ARM (e.g., Apple Silicon M1, M2, etc.), consult relevant resources and posts in Ed, etc., as the setup described in this guide may be otherwise problematic to deal with.

Prerequisites

Prior to proceeding further, ensure that the following dependencies are installed locally on your client/host device:

  • Docker Desktop (or equivalent Docker Engine) for containerization
    • On installation, this will also provide the underlying Docker Engine (Linux-based) virtualization layer, and the Docker Compose command line tool
  • VS Code for interaction with the source code and files

Note: For Windows client/host devices, when installing Docker Desktop, use the default/preselected WSL 2 based installation settings (i.e., rather than Hyper-V). This is a Windows-specific sub-dependency which provides the underlying Linux-based virtualization layer.

Additionally, ensure the following VS Code extensions are installed:

Note: See here for more information regarding VS Code remote extension pack. Also, see here for more information regarding C/C++ development using VS Code.

Relevant files provided in this repository are referenced in subsequent sections/links. For expediency, you may either pull down or download this entire repository in order to access these files in a single/consolidated manner, or otherwise simply transfer these files on an ad hoc basis as needed.

Note: In general throughout this repo, ~ and /home/cs6290/ (i.e., home directory of user cs6290) refer to the same location within the (Linux-based) file system of the Docker-containerized (or equivalent) development environment.

Environment Setup

On completed installation of the prerequisites, see the Environment Setup for further instructions regarding instantiating the Docker-based development environment, which contains a containerized version of the SESC app and related development tools (i.e., compiler and debugger).

Debugging

On successful setup of the development environment (or equivalent), see the Debugging Guide for further information regarding configuring and using the debugger (i.e., for projects work).