Skip to content

Latest commit

 

History

History
70 lines (56 loc) · 1.91 KB

File metadata and controls

70 lines (56 loc) · 1.91 KB

Debugging Slang

This document gives examples showing how to run debuggers in the Slang codebase. Follow the Building Slang From Source instructions first.

Visual Studio

This repo includes multiple *.natvis files which Visual Studio picks up automatically; no extra configuration is required.

LLDB

If you use LLDB, we provide a .lldbinit file which enables data formatters for types in the Slang codebase. You can use this with LLDB in your terminal via the --local-lldbinit flag; for example:

$ cmake --build --preset debug
$ lldb --local-lldbinit build/Debug/bin/slangc -- tests/byte-code/hello.slang -dump-ir
(lldb) breakpoint set --name dumpIR
(lldb) run

LLDB can be used with either GCC or Clang, but Clang seems to behave better about respecting breakpoint locations and not having missing variables.

VS Code

If instead you prefer to debug within VS Code, you can run LLDB via the CodeLLDB extension. For example, to recreate the same debugging session as above, create a .vscode/tasks.json file with these contents:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Debug build",
      "type": "shell",
      "command": "cmake",
      "args": ["--build", "--preset", "debug"]
    }
  ]
}

Then create a .vscode/launch.json file with these contents:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "LLDB",
      "preLaunchTask": "Debug build",
      "type": "lldb",
      "request": "launch",
      "initCommands": ["command source .lldbinit"],
      "program": "build/Debug/bin/slangc",
      "args": ["tests/byte-code/hello.slang", "-dump-ir"]
    }
  ]
}

Finally, place any breakpoints you want, and hit F5.