Pretty-принтер не работает при удаленной отладке платы с помощью кода - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь выполнить удаленную отладку приложения c ++ с хоста VM Ubuntu 16.04 amd64 до цели debian armbian платы cubietruck (ARM® Cortex ™ -A7 Dual-Core) с помощью кода.
Я следовал этому руководству https://medium.com/@spe_/debugging-c-c-programs-remotely-using-visual-studio-code-and-gdbserver-559d3434fb78 с единственным добавлением поля

"setupCommands": [
          {
              "description": "Enable pretty-printing for gdb",
              "text": "-enable-pretty-printing",
              "ignoreFailures": true
          }
      ],

так что весь launch.json стал

{
    "version": "0.2.0",
    "configurations": [
      {
        "name": "C++ Launch",
        "type": "cppdbg",
        "request": "launch",
        "miDebuggerPath": "/home/user/ARM/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gdb",
        "setupCommands": [
          {
              "description": "Enable pretty-printing for gdb",
              "text": "-enable-pretty-printing",
              "ignoreFailures": true
          }
      ],
        "program": "/home/user/myproject/bin/app",
        "miDebuggerServerAddress": "localhost:9091",
        "args": [],
        "stopAtEntry": false,
        "cwd": "/home/user/myproject",
        "environment": [],
        "externalConsole": true,
        "linux": {
          "MIMode": "gdb"
        },
        "osx": {
          "MIMode": "gdb"
        },
        "windows": {
          "MIMode": "gdb"
        }
      }
    ]
  }

в файле launch.json для поддержки симпатичного принтера.
В хосте я использую GDB linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf, в то время как у GDB на плате arm есть нативный 8.0.1 GDB.
Все работает отлично, кроме красивого принтера, так как строки не отображаются правильно. Всякий раз, когда я наводю курсор на строку, всплывают поля npos и _M_dataplus, и нужно открыть поле _M_dataplus, чтобы увидеть фактическую строку.
В хосте linaro gdb поддерживает pretty-printer, так как команда info pretty-printer выдает:

builtin  
mpx_bound128 

Однако, когда я даю ту же команду в целевой GDB 8.0.1, я получаю:

Undefined info command: "pretty-printer".  Try "help info".

Я также создал файл .gdbinit в моей домашней папке хоста, который содержит команду enable pretty-printer. В консоли отладки я увидел, что она была успешно выполнена, но результат также был ошибочным.
Поскольку я довольно новичок в удаленной отладке, что я должен сделать, чтобы заставить работать симпатичный принтер. Должен ли я установить pretty-printer на удаленную плату или я что-то не так делаю?

...