Setting up VS Code for C using Cygwin64 Compiler and Debugger on Windows (ERROR: Unable to start debugging)
Setting up VS Code for C using Cygwin64 Compiler and Debugger on Windows (ERROR: Unable to start debugging)
我正在尝试设置 VSCODE 以使用 Cygwin64 调试 Windows 上的 C 程序。
我使用了 @stephw ( ) 建议的配置,但它对我不起作用。
我无法评论原post,因为我没有足够的声誉点数,我无法回答,因为我不知道原问题的答案。
脚本的名字是dirigir.c,我可以编译。文件 dirigir.exe 已创建。但是...
我收到以下错误:
错误:无法开始调试。命令“-exec-运行”的意外 GDB 输出。创建进程时出错 /usr/bin/E:\cloud\Backup\Trabalhos com programas\C and Cpp\scripts/e:\cloud\Backup\Trabalhos com programas\C and Cpp\scripts\dirigir.exe, (错误 2).
由于某种原因,/usr/bin/... / 被插入到路径中,并且指向 . exe 重复.
我的 launch.json
文件是推荐的:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "gcc.exe build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [
{
"name": "PATH",
"value": "%PATH%;z:\cygwin64\bin"
}
],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\cygwin64\bin\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"logging": { "engineLogging": true }, //optional
"preLaunchTask": "gcc.exe build active file"
}
]
}
而我的tasks.json
如下:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "gcc.exe build active file",
"command": "C:\cygwin64\bin\gcc.exe",
"args": [
"-g",
"-o",
"${fileDirname}\${fileBasenameNoExtension}.exe",
"-Werror", // Optional
"-Wall", // Optional
"-Wextra", // Optional
"-ansi", // Optional
"-pedantic", // Optional
"${file}"
],
"options": {
"cwd": "C:\cygwin64\bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
},
]
}
您知道如何进行吗?提前谢谢你。
终于,我成功了。
基于 WardenGnaw 在此线程中的回答:
[cppdbg] Cygwin 10.1-1: intergatedTerminal unable to take input #6475 当然还有@stephw 在原始问题中的回答,我可以调试我的 C 程序。
首先,我在我的 c 程序所在的同一文件夹 中保存了一个 VSCODE 工作区。
然后,我使用了最新的Cygwin gdb版本(10.2-1)。没有用(我收到了提出这个问题的错误消息)。然后,我尝试了 9.2-1,现在可以正常工作了。
重要的是要记住 将“C:\cygwin64\bin”添加到 PATH。
我稍微改变了我的 launch.json
。请注意 "preLaunchTask" 键的值与 tasks.json
中的 "label" 键的值不完全相同:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "gcc.exe build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [
{
"name": "PATH",
"value": "%PATH%;C:\cygwin64\bin"
}
],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\cygwin64\bin\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"logging": { "engineLogging": true }, //optional
"preLaunchTask": "gcc.exe build active file"
}
]
}
我的tasks.json
是这样的(注意最后我的名字,在“detail”键):
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe build active file",
"command": "C:\cygwin64\bin\gcc.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": "build",
"detail": "Task generated by Leonardo."
}
]
}
我注意到有些奇怪:
当我按F5时,它不起作用,因为找不到创建的任务。
当我将 launch.json
文件(preLaunchTask 键)编辑为 tasks.json
文件中完全相同的值时,“未找到”错误消失,但调试过程没有启动。
"preLaunchTask": "C/C++: gcc.exe build active file"
如果我按下 运行 和调试播放按钮,调试过程也不起作用。
当我使用命令面板(按 CTRL+SHIFT+P)并单击 C/C++: Build and Debug Active File
、
然后选择我创建的任务(第二个好像是自动的),
程序编译完成,调试过程开始。
这是我非常简单的测试脚本:
#include <stdio.h>
#include <stdlib.h>
int main() {
/* declare and initialize string */
char myString[] = "This is an example of string declaration!";
/* print string */
printf("%s", myString);
int numberA = 5;
int numberB = 10;
int sum = numberA + numberB;
/* Printing a number */
printf("A soma de numberA + numberB é: %d", sum);
return 0;
}
我希望这个问题和答案能对以后的人有所帮助。和平
此处描述的 None 的 .json 更改适用于 gdb 10.2-1。唯一有用的是降级到 gdb 9.2-1,这立即解决了问题。
我正在尝试设置 VSCODE 以使用 Cygwin64 调试 Windows 上的 C 程序。
我使用了 @stephw (
我无法评论原post,因为我没有足够的声誉点数,我无法回答,因为我不知道原问题的答案。
脚本的名字是dirigir.c,我可以编译。文件 dirigir.exe 已创建。但是...
我收到以下错误:
错误:无法开始调试。命令“-exec-运行”的意外 GDB 输出。创建进程时出错 /usr/bin/E:\cloud\Backup\Trabalhos com programas\C and Cpp\scripts/e:\cloud\Backup\Trabalhos com programas\C and Cpp\scripts\dirigir.exe, (错误 2).
由于某种原因,/usr/bin/... / 被插入到路径中,并且指向 . exe 重复.
我的 launch.json
文件是推荐的:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "gcc.exe build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [
{
"name": "PATH",
"value": "%PATH%;z:\cygwin64\bin"
}
],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\cygwin64\bin\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"logging": { "engineLogging": true }, //optional
"preLaunchTask": "gcc.exe build active file"
}
]
}
而我的tasks.json
如下:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "gcc.exe build active file",
"command": "C:\cygwin64\bin\gcc.exe",
"args": [
"-g",
"-o",
"${fileDirname}\${fileBasenameNoExtension}.exe",
"-Werror", // Optional
"-Wall", // Optional
"-Wextra", // Optional
"-ansi", // Optional
"-pedantic", // Optional
"${file}"
],
"options": {
"cwd": "C:\cygwin64\bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
},
]
}
您知道如何进行吗?提前谢谢你。
终于,我成功了。
基于 WardenGnaw 在此线程中的回答: [cppdbg] Cygwin 10.1-1: intergatedTerminal unable to take input #6475 当然还有@stephw 在原始问题中的回答,我可以调试我的 C 程序。
首先,我在我的 c 程序所在的同一文件夹 中保存了一个 VSCODE 工作区。
然后,我使用了最新的Cygwin gdb版本(10.2-1)。没有用(我收到了提出这个问题的错误消息)。然后,我尝试了 9.2-1,现在可以正常工作了。
重要的是要记住 将“C:\cygwin64\bin”添加到 PATH。
我稍微改变了我的 launch.json
。请注意 "preLaunchTask" 键的值与 tasks.json
中的 "label" 键的值不完全相同:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "gcc.exe build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [
{
"name": "PATH",
"value": "%PATH%;C:\cygwin64\bin"
}
],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\cygwin64\bin\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"logging": { "engineLogging": true }, //optional
"preLaunchTask": "gcc.exe build active file"
}
]
}
我的tasks.json
是这样的(注意最后我的名字,在“detail”键):
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe build active file",
"command": "C:\cygwin64\bin\gcc.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": "build",
"detail": "Task generated by Leonardo."
}
]
}
我注意到有些奇怪: 当我按F5时,它不起作用,因为找不到创建的任务。
当我将 launch.json
文件(preLaunchTask 键)编辑为 tasks.json
文件中完全相同的值时,“未找到”错误消失,但调试过程没有启动。
"preLaunchTask": "C/C++: gcc.exe build active file"
如果我按下 运行 和调试播放按钮,调试过程也不起作用。
当我使用命令面板(按 CTRL+SHIFT+P)并单击 C/C++: Build and Debug Active File
、
然后选择我创建的任务(第二个好像是自动的),
程序编译完成,调试过程开始。
这是我非常简单的测试脚本:
#include <stdio.h>
#include <stdlib.h>
int main() {
/* declare and initialize string */
char myString[] = "This is an example of string declaration!";
/* print string */
printf("%s", myString);
int numberA = 5;
int numberB = 10;
int sum = numberA + numberB;
/* Printing a number */
printf("A soma de numberA + numberB é: %d", sum);
return 0;
}
我希望这个问题和答案能对以后的人有所帮助。和平
None 的 .json 更改适用于 gdb 10.2-1。唯一有用的是降级到 gdb 9.2-1,这立即解决了问题。