1

Я занимаюсь отладкой удаленной программы C++, работающей на Rasberry Pi в Ubuntu. Я следовал за https://medium.com/@spe_/debugging-cc-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 ответ1

0

Где я могу set gnutarget format-name?

В вашем gdb.ini или .gdbinit в зависимости от ситуации.

Файл .gdbinit

После запуска GDB считывает и выполняет файл инициализации с именем .gdbinit . Он может содержать любую команду (например, set и break) и многое другое. Например, "set listsize" и "set prompt" могут входить в .gdbinit. Есть два места, где GDB будет искать этот файл (по порядку):

  • В вашем домашнем каталоге
  • В текущем каталоге

Вы можете поместить команды, которые будут выполняться для всех ваших программных проектов, в $HOME/.gdbinit а команды для конкретных проектов - в $PWD/.gdbinit .

Вы можете комментировать свои .gdbinit файлы с помощью bash # . И пустые строки, конечно же, игнорируются.

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

Пример исходного файла советника gdb.ini

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .