C++ 为C/C+设置VSCode+;使用gcc、g和x2B在窗口7上调试+;和gdb
我是按照他的指示做的。已安装的CPP工具。创建了具有以下内容的C++ 为C/C+设置VSCode+;使用gcc、g和x2B在窗口7上调试+;和gdb,c++,c,g++,visual-studio-code,vscode-settings,C++,C,G++,Visual Studio Code,Vscode Settings,我是按照他的指示做的。已安装的CPP工具。创建了具有以下内容的tasks.json: { "version": "0.1.0", "command": "g++", "isShellCommand": true, "showOutput": "always", "args": ["-g", "helloworld.c"] } 和launch.json,包含以下内容: { "version": "0.2.0", "configuration
tasks.json
:
{
"version": "0.1.0",
"command": "g++",
"isShellCommand": true,
"showOutput": "always",
"args": ["-g", "helloworld.c"]
}
和launch.json
,包含以下内容:
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Launch (Windows)",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceRoot}/a.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"environment": [],
"externalConsole": false,
"windows": {
"MIMode" : "gdb",
"miDebuggerPath": "C:\\Mahesh\\Program Files\\mingw\\MinGW\\bin\\gdb.exe"
}
},
{
"name": "C++ Attach (Windows)",
"program": "${workspaceRoot}/a.exe",
"type": "cppvsdbg",
"request": "attach",
"processId": "${command.pickProcess}",
"windows": {
"MIMode" : "gdb",
"miDebuggerPath": "C:\\Mahesh\\Program Files\\mingw\\MinGW\\bin\\gdb.exe"
}
}
]
}
当我执行Ctrl+Shift+B
时,代码生成,生成a.exe
。运行调试时,它会给出以下输出:
--------------------------------------------------------------------------------
You may only use the C/C++ Extension for Visual Studio Code with Visual Studio
Code, Visual Studio or Xamarin Studio software to help you develop and test your
applications.
--------------------------------------------------------------------------------
Loaded 'C:\Mahesh\repos\VSCodeC\polyaddition\a.exe'. Symbols are not loaded.
Loaded 'C:\Windows\System32\ntdll.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\kernel32.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\KernelBase.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\sysfer.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\msvcr100.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\QIPCAP64.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\oleaut32.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\ole32.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\msvcrt.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\gdi32.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\user32.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\lpk.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\usp10.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\rpcrt4.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\imm32.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\msctf.dll'. Symbols are not loaded.
The thread 9524 has exited with code 0 (0x0).
Hello World!!!
The program '[7876] a.exe' has exited with code 0 (0x0).
但是代码没有达到我在代码中设置的调试点。你可以看到,它正在打印“你好,世界!!!”。如何进行配置,以便在调试时逐步完成代码
环境:
- 程序“[7876]a.exe”已退出,代码为0(0x0), 配置为“i686-pc-mingw32”
- gcc.exe(x86_64-win32-seh-rev201506,mingwpy build)4.9.2
- g++.exe(x86_64-win32-seh-rev201506,mingwpy build)4.9.2
- 在中的讨论中,我被要求使用
标志运行gcc,因为我的编译器是64位的,它可能会生成64位二进制文件。但是,m32
给出了如下错误。使用gcc-m32 helloworld.c
选项进行解释。它要求在编译时添加-m32
标志。但是i686-w64-mingw32/x86_64-w64-mingw32
给出了gcc-x86-w64-mingw32 helloworld.c
错误,无法识别的语言
给出了gcc-i686-w64-mingw32 helloworld.c
。我做错了什么无法识别的命令行选项
- 这篇文章还说,调试目前只能在linux上进行,而不能在Windows上进行。是这样吗
launch.json
适用于我,TDM-GCC和gdb作为调试器:
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Launch",
"type": "cppdbg",
"request": "launch",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"environment": [],
"externalConsole": true,
"linux": {
"program": "${workspaceRoot}/a.out",
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
"osx": {
"MIMode": "lldb"
},
"windows": {
"miDebuggerPath": "C:\\TDM-GCC-64\\bin\\gdb.exe",
"program": "${workspaceRoot}\\a.exe",
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
},
{
"name": "C++ Attach",
"miDebuggerPath": "C:\\TDM-GCC-64\\bin\\gdb.exe",
"type": "cppdbg",
"request": "attach",
"program": "${workspaceRoot}/a.exe",
"processId": "${command:pickProcess}",
"linux": {
"MIMode": "gdb",
"program": "${workspaceRoot}/a.out",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
"osx": {
"MIMode": "lldb"
},
"windows": {
"MIMode": "gdb",
"miDebuggerPath": "C:\\TDM-GCC-64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
}
]
}
我以前也遇到过这个问题。在我的例子中,编译器默认生成了一个发布应用程序。它没有用于调试的符号 因此,请确保为调试生成了调试应用程序
祝你好运 如果希望command.PickProcess正常运行 它应该是“:”而不是“。”-因此:
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach",
"processId": "${command:pickProcess}"
}
应该对您进行排序:)您需要设置调试符号的路径<代码>符号搜索路径=C:\\path\u 1;D:\\path_2;等等。GitHub VSCode写的很好,用于配置
launch.json
。希望能有点帮助@但是那些调试符号在哪里呢?正如我在案例中所说的,gcc-g helloworld.c
没有生成任何调试符号。注意,Mahesh,您已经在“程序文件”中安装了Mingw,这意味着什么?