Linux, VScode, C.
文件 pcl_digtest.elf
:
elena@Elena:~/Documents/1288/pclqube$ 文件 pcl_digtest.elf pcl_digtest.elf:ELF 32 位 LSB 可执行文件,Atmel AVR 8 位,版本 1 (SYSV) (SYSV),静态链接,带 debug_info,未剥离
avr8是:/home/elena/local/avr8-gnu-toolchain-3.4.5.1522/avr8-gnu-toolchain-linux_x86_64
luanch.json 的代码如下:
version": "0.2.0",
"configurations":[
{
"name": "(gdb) Launch"、
type": "cppdbg"、
请求": "launch"、
"program": "${workspaceFolder}/pcl_digtest.elf"、
"cwd":"${workspaceFolder}"、
"外部控制台":false、
"setupCommands":[
{
"description": "Enable pretty-printing for gdb"、
"text": "-enable-pretty-printing"、
"ignoreFailures": true
},
{
"description": "Set arguments to debuggee"、
"text": "set args -e1"、
"ignoreFailures": true
}
],
"preLaunchTask": "run Makefile"、
"launchCompleteCommand": "exec-run"、
"linux":{
"MIMode": "gdb"、
"miDebuggerPath": "/usr/bin/gdb";
},
}
]
}
您知道问题出在哪里吗?
您知道问题出在哪里吗? 谢谢!
我正在尝试运行并调试一个 makefile。它运行得很好,但调试控制台中的信息是:
&"warning:GDB: Failed to set controlling terminal:Operation not permitted\n"; /bin/bash: line 1:/home/elena/Documents/1288/pclqube/pcl_digtest.elf: cannot execute binary file:执行格式错误 /bin/bash: 第 1 行:/home/elena/Documents/1288/pclqube/pcl_digtest.elf:成功 1 + Done "/usr/bin/gdb" --interpreter=mi --tty=${DbgTerm} 0<"/tmp/Microsoft-MIEngine-In-pfp2dn4s.40s" 1>"/tmp/Microsoft-MIEngine-Out-xiepqbvb.4bj"; elena@Elena:~/Documents/1288/pclqube$
错误信息表明你试图运行为 AVR 架构编译的程序 pcl_digtest.elf
在你的 Linux 系统上,该系统很可能是 x86 或 ARM 架构。 这就像试图让汽车使用喷气发动机燃料运行一样 - 架构不匹配。
为了调试你的 AVR 程序,你需要一个 AVR 模拟器或者连接到你的 Linux 系统的实际 AVR 硬件。 VS Code 和 GDB 可以与 AVR 模拟器和硬件调试器一起使用。
以下是解决该问题的步骤:
- 选择一个 AVR 模拟器:
- SimulAVR: 一个流行的开源选项。 (https://www.nongnu.org/simulavr/)
- avarice: 另一个功能强大的开源 AVR 模拟器。
-
AVR Studio (Atmel Studio): Atmel(现为 Microchip)的官方 IDE 和模拟器。
-
安装模拟器: 按照所选模拟器的安装说明进行操作。
-
配置 VS Code:
- 安装 C/C++ 扩展: 如果你还没有安装,请安装 Microsoft 的 C/C++ 扩展。
-
修改 launch.json:
- 将
"MIMode"
从"gdb"
更改为"simulavr"
(如果你使用 SimulAVR) 或你的模拟器的相应模式。 - 更新
"miDebuggerPath"
以指向你的模拟器可执行文件的路径(例如,/usr/bin/simulavr
)。 - 你可能需要删除或注释掉
"program"
设置,因为模拟器通常直接从 ELF 文件加载程序。
- 将
-
启动调试会话: 现在你应该能够在 VS Code 中构建你的项目并启动调试会话,它将使用模拟器运行和调试你的 AVR 代码。
其他提示:
- 确保你的 AVR 工具链 (例如,avr-gcc, avr-gdb) 已正确安装并添加到你的路径中。
- 查阅你的模拟器文档,了解如何配置和使用它,因为它可能需要特定的设置或命令行选项。
通过这些步骤,你应该能够成功调试你的 AVR 代码!
标签:visual-studio-code,debugging From: 78550367