Skip to content

Installation of Docker, VSCode and its extensions

Yulei Sui edited this page Mar 12, 2022 · 5 revisions

0. Prerequisite:

1. Working with VSCode in Docker containers

1.1 Install extensions in VSCode

*To install the extension, open the Extensions view (MAC: ⇧⌘X, Windows: Ctrl+Shift+X, Linux: Ctrl+Shift+X)
  • Extension(1): Docker extension
    • Search for docker to filter results and select Docker extension authored by Microsoft.

  • Extension(2): Remote Containers extension
    • Search for remote container to filter results and select extension authored by Microsoft.


1.2 Pull the pre-built image in Docker hub

Step1: Enter the command in cmd or terminal (shortcut to open a terminal: Ctrl+`):

docker pull svftools/teaching-software-verification:latest

Step2: Create and run a container of the image:

  • Mac & Linux: docker run -itd svftools/teaching-software-verification:latest /bin/bash

  • Windows: docker run -itd svftools/teaching-software-verification:latest


1.3 Load Docker container in VSCode

Right click the container item and select 'Attach to Visual Studio Code'

If you can't see the working directory, please select file -> open (folder)... then enter the /home/SVF-tools/Teaching-Software-Verification


1.4 Install/Enable C/C++ extension in container

- To install the extension, open the Extensions view (MAC: ⇧⌘X, Windows: Ctrl+Shift+X, Linux: Ctrl+Shift+X)

- Search for C/C++ and select Docker extension authored by Microsoft.


2. Run and debug your program

  • VSCode's built-in debugger helps your editing, compilation and debugging.
  • SVF-Teaching has prepared configurations in launch.json to debug hello.cpp
  • Take a look at this page which contains several troubleshooting when configuring VSCode debugging environment.
  • More information VSCode-debugging

2.1 Switching programs

When working on different assignments, change the "program" field in launch.json (line 8). Values can be assign-1 for Assignment 1, assign-2 for Assignment 2, assign-3 for Assignment 3, assign-4 for Assignment 4, hello for the hello world program, and codegraph for the code graph project.