Skip to content

Commit

Permalink
VSCode: Support IDE vscode to run and debug.
Browse files Browse the repository at this point in the history
  • Loading branch information
winlinvip committed Sep 10, 2024
1 parent e674f82 commit 40e8ed4
Show file tree
Hide file tree
Showing 6 changed files with 103 additions and 5 deletions.
6 changes: 3 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@
*.pyc
*.swp
.DS_Store
.vscode
.vscode/*
/trunk/Makefile
/trunk/objs
/trunk/src/build-qt-Desktop-Debug
Expand All @@ -42,4 +40,6 @@ cmake-build-debug
/trunk/ide/srs_clion/Makefile
/trunk/ide/srs_clion/cmake_install.cmake
/trunk/ide/srs_clion/srs
/trunk/ide/srs_clion/Testing/
/trunk/ide/srs_clion/Testing/
/trunk/ide/vscode-build

38 changes: 38 additions & 0 deletions .vscode/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Debug with VSCode

Support run and debug with VSCode.

## SRS

Install the following extensions:

- CMake Tools
- CodeLLDB
- C/C++ Extension Pack

Open the folder like `~/git/srs` in VSCode.
Run commmand `> CMake: Configure` to configure the project.

> Note: You can press `Ctrl+R`, then type `CMake: Configure` then select `Clang` as the toolchain.
> Note: The `settings.json` is used to configure the cmake. It will use `${workspaceFolder}/trunk/ide/srs_clion/CMakeLists.txt`
> and `${workspaceFolder}/trunk/ide/vscode-build` as the source file and build directory.
Click the `Run > Run Without Debugging` button to start the server.

> Note: The `launch.json` is used for running and debugging. The build will output the binary to
> `${workspaceFolder}/trunk/ide/vscode-build/srs`.
## Proxy

Install the following extensions:

- Go

Open the folder like `~/git/srs` in VSCode.

Select the `View > Run` and select `Launch srs-proxy` to start the proxy server.

Click the `Run > Run Without Debugging` button to start the server.

> Note: The `launch.json` is used for running and debugging.
36 changes: 36 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch SRS",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/trunk/ide/vscode-build/srs",
"args": ["-c", "conf/console.conf"],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/trunk",
"environment": [],
"externalConsole": false,
"MIMode": "lldb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build",
"logging": {
"engineLogging": true
}
},
{
"name": "Launch srs-proxy",
"type": "go",
"request": "launch",
"mode": "auto",
"cwd": "${workspaceFolder}/proxy",
"program": "${workspaceFolder}/proxy"
}
]
}
5 changes: 5 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"cmake.sourceDirectory": "${workspaceFolder}/trunk/ide/srs_clion",
"cmake.buildDirectory": "${workspaceFolder}/trunk/ide/vscode-build",
"cmake.configureOnOpen": false
}
17 changes: 17 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "cmake --build ${workspaceFolder}/trunk/ide/vscode-build",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": ["$gcc"],
"detail": "Build SRS by cmake."
}
]
}

6 changes: 4 additions & 2 deletions proxy/env.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ package main

import (
"context"
"io/ioutil"
"io"
"os"
"path"
"strings"
Expand All @@ -32,12 +32,14 @@ func loadEnvFile(ctx context.Context) error {
}
defer file.Close()

b, err := ioutil.ReadAll(file)
b, err := io.ReadAll(file)
if err != nil {
return errors.Wrapf(err, "read %v", envFile)
}

lines := strings.Split(strings.Replace(string(b), "\r\n", "\n", -1), "\n")
logger.Df(ctx, "load env file %v, lines=%v", envFile, len(lines))

for _, line := range lines {
if strings.HasPrefix(strings.TrimSpace(line), "#") {
continue
Expand Down

0 comments on commit 40e8ed4

Please sign in to comment.