当 vs-code 远程 C++ 调试要求设置 gnutarget 格式名称时该怎么办

当 vs-code 远程 C++ 调试要求设置 gnutarget 格式名称时该怎么办

我正在调试在 Ubuntu 上的 Raspberry Pi 上运行的远程 C++ 程序。我已关注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

我去哪儿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 的 gdb 教程:初始化、列出和运行

例子:

示例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

来源EA 示例 gdb.ini 文件

相关内容