File: vs_code_debugging.md

package info (click to toggle)
gitlab 17.6.5-19
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 629,368 kB
  • sloc: ruby: 1,915,304; javascript: 557,307; sql: 60,639; xml: 6,509; sh: 4,567; makefile: 1,239; python: 406
file content (102 lines) | stat: -rw-r--r-- 3,881 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
---
stage: none
group: unassigned
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
---

# VS Code debugging

This document describes how to set up Rails debugging in [Visual Studio Code (VS Code)](https://code.visualstudio.com/) using the [GitLab Development Kit (GDK)](contributing/first_contribution/configure-dev-env-gdk.md).

## Setup

The examples below contain launch configurations for `rails-web` and `rails-background-jobs`.

1. Install the `debug` gem by running `gem install debug` inside your `gitlab` folder.
1. Install the [VS Code Ruby `rdbg` Debugger](https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg) extension to add support for the `rdbg` debugger type to VS Code.
1. In case you want to automatically stop and start GitLab and its associated Ruby Rails/Sidekiq process, you may add the following VS Code task to your configuration under the `.vscode/tasks.json` file:

   ```json
   {
     "version": "2.0.0",
     "tasks": [
       {
         "label": "start rdbg for rails-web",
         "type": "shell",
         "command": "gdk stop rails-web && GITLAB_RAILS_RACK_TIMEOUT_ENABLE_LOGGING=false PUMA_SINGLE_MODE=true rdbg --open -c bin/rails server",
         "isBackground": true,
         "problemMatcher": {
           "owner": "rails",
           "pattern": {
             "regexp": "^.*$",
           },
           "background": {
             "activeOnStart": false,
             "beginsPattern": "^(ok: down:).*$",
             "endsPattern": "^(DEBUGGER: wait for debugger connection\\.\\.\\.)$"
           }
         }
       },
       {
         "label": "start rdbg for rails-background-jobs",
         "type": "shell",
         "command": "gdk stop rails-background-jobs && rdbg --open -c bundle exec sidekiq",
         "isBackground": true,
         "problemMatcher": {
           "owner": "sidekiq",
           "pattern": {
             "regexp": "^(DEBUGGER: wait for debugger connection\\.\\.\\.)$"
           },
           "background": {
             "activeOnStart": false,
             "beginsPattern": "^(ok: down:).*$",
             "endsPattern": "^(DEBUGGER: wait for debugger connection\\.\\.\\.)$"
           }
         }
       }
     ]
   }
   ```

1. Add the following configuration to your `.vscode/launch.json` file:

   ```json
   {
     "version": "0.2.0",
     "configurations": [
       {
         "type": "rdbg",
         "name": "Attach rails-web with rdbg",
         "request": "attach",

         // remove the following "preLaunchTask" if you do not wish to stop and start
         // GitLab via VS Code but manually on a separate terminal.
         "preLaunchTask": "start rdbg for rails-web"
       },
       {
         "type": "rdbg",
         "name": "Attach rails-background-jobs with rdbg",
         "request": "attach",

         // remove the following "preLaunchTask" if you do not wish to stop and start
         // GitLab via VS Code but manually on a separate terminal.
         "preLaunchTask": "start rdbg for rails-background-jobs"
       }
     ]
   }
   ```

WARNING:
The VS Code Ruby extension might have issues finding the correct Ruby installation and the appropriate `rdbg` command. In this case, add `"rdbgPath": "/home/user/.asdf/shims/` (in the case of asdf) to the launch configuration above.

## Debugging

### Prerequisites

- You must have a running [GDK](contributing/first_contribution/configure-dev-env-gdk.md) instance.

To start debugging, do one of the following:

- Press <kbd>F5</kbd>.
- Run the `Debug: Start Debugging` command.
- Open the [Run and Debug view](https://code.visualstudio.com/docs/editor/debugging#_run-and-debug-view), select one of the launch profiles, then select **Play** (**{play}**).