Toivo Säwén
Toivo Säwén

Reputation: 2042

Debugging using Visual Studio Code and piping terminal output to a file

I am using VS Code to debug an application on Ubuntu, using a launch.json file and cmake to build and debug. This works fine and I can see the output of the program in the terminal as expected. However, I would like to automatically save this output to a file. The way I would do this typically would be something like mycommand > terminal_output.txt, however I can't find a way of replicating this using the launch.json file, or alternatively of running the debug through the terminal (e.g. something along the lines of debug --flags launch.json > terminal_output.txt).

Here is my launch.json for reference:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++-8 build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "g++-8 build active file",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}

Is there a way of doing this in a simple way?

Upvotes: 6

Views: 9189

Answers (2)

yue huang
yue huang

Reputation: 21

  1. install CodeLLDB extension

  2. launch.log: inside a CodeLLDB launch configuration add

    "stdio": [null, null, "debug.log"] // stdin/stdout/stderr

stdio redirection for CodeLLDB

Upvotes: 2

Toivo Säwén
Toivo Säwén

Reputation: 2042

Since I am using cmake, I was able to achieve this using cmake.debugConfig in my settings.json file:

{
    "cmake.debugConfig": {
        "args": [
            ">",
            "test.txt"
        ]
    }
}

Adding "args" in launch.json, however, did not work.

Upvotes: 2

Related Questions