Я пытаюсь выполнить удаленную отладку приложения 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 на удаленную плату или я что-то не так делаю?