Улучшенная красивая печать двумерных массивов в VS Code Debugger — C++

Здравствуйте!
Я новичок в программировании на C++ в VS Code, поэтому у меня есть пара вопросов.
Мои характеристики программного обеспечения:

  • Linux, 64 бит, Deepin 15.9
  • Код ВС 1.31.1
  • G++-8, ГБД 7.12
  • Используемое расширение: C/C++ IntelliSense, отладка и просмотр кода от Microsoft.

С++ Красивая печать 2D-массива

Мне приходится отлаживать много многомерных массивов во время программирования, и поэтому я хочу знать метод просмотра двумерного массива в окне «переменные» (также подойдет окно «смотреть») в виде matrix.
В настоящее время окно моей переменной выглядит так

Я хочу, чтобы он напоминал что-то вроде

Я знаю, что двумерный массив можно просмотреть с помощью метода, опубликованного здесь, но я хотите просмотреть его на вкладке отладки в VSCode. Есть ли какой-нибудь красивый метод печати или код, который поможет мне достичь моей цели?


Случайное сообщение на терминале при остановке процесса отладки

После остановки процесса отладки C++ на терминале появляется какое-то сообщение. Вот как это выглядит:

Я переключился с открытия внешнего терминала для отладки на использование встроенного, так как после остановки процесса отладки отображается вышеуказанное сообщение и терминал не закрывается автоматически, поэтому мне пришлось бы закрыть терминал вручную. Этого не было в Windows, где терминал автоматически закрывался после отладки. Есть ли способ предотвратить это сообщение (оно появляется после завершения или остановки отладки)?
Я хочу использовать внешний терминал для отладки. Есть ли способ удалить это сообщение об ошибке или выполнить автоматический выход после закрытия отладки?


Это мои файлы *.json

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/g++-8",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}

launch.json

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/a.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "setupCommands": [
                {
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

tasks.json

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "_runner": "terminal",
    "tasks": [
        {
            "label": "Build",
            "type": "shell",
            "command": "g++-8",
            "args": [
                "-g",
                "${file}"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

Любая помощь действительно ценится!!


person infixint943    schedule 01.03.2019    source источник


Ответы (1)


Я предполагаю, что вы можете написать свой собственный gdb красивый принтер или переход на lldb и следующее расширение, обеспечивающее расширенную визуализацию: https://github.com/vadimcn/vscode-lldb/wiki/Data-visualization

person Trass3r    schedule 22.07.2020