Что делать, когда vs-код удаленной отладки C++ просит установить gnutarget format-name
Я нахожусь на отладке удаленной программы C++, работающей на Rasberry Pi на Ubuntu. Я следовал за https://medium.com/@spe_/debugging-c-c-programs-remotely-using-visual-studio-code-and-gdbserver-559d3434fb78. Но после начала отладки я получаю
GDB failed with message: "/MyProjec/MyProgram": not in executable format: File format is ambiguous.
Matching formats: elf32-littlearm elf32-littlearm-symbian elf32-littlearm-vxworks.
Use "set gnutarget format-name" to specify the format.
где установить gnutarget format-name?
1 ответ
Где я set gnutarget format-name?
В вашем gdb.ini или же .gdbinit файл в зависимости от обстоятельств.
.gdbinitфайлПосле запуска GDB считывает и выполняет файл инициализации с именем
.gdbinit, Он может содержать любую команду (например, set и break) и многое другое. Например, "set listsize" и "set prompt" могут входить в.gdbinit. Есть два места, где GDB будет искать этот файл (по порядку):
- В вашем домашнем каталоге
- В текущем каталоге
Вы можете поместить команды, которые будут выполняться для всех ваших программных проектов в
$HOME/.gdbinitи специфичные для проекта команды в$PWD/.gdbinit,Вы можете прокомментировать свой
.gdbinitфайлы с Bash's#, И пустые строки, конечно же, игнорируются.
Peter's GDB Tutorial: инициализация, распечатка и запуск
Пример:
Образец gdb.ini файл
Здесь у вас есть образец
gdb.iniсписок файлов, который дает лучшие результаты при использованииgdb, Под Linux вы должны поместить это в.gdbinitфайл в вашем домашнем каталоге или текущем каталоге.set print demangle off set gnutarget auto set verbose on set complaints 1000 dir ./rtl/dosv2 set language c++ set print vtbl on set print object on set print sym on set print pretty on disp /i $eip define pst set $pos=&$arg0 set $strlen = {byte}$pos print {char}&$arg0.st@($strlen+1) end document pst Print out a Pascal string end