赞
踩
以前一直使用notepad++写一些简单的脚本,后来发现vscode这个编辑器挺好用,并且带有丰富的插件。这篇博客主要记录一下如何使用vscode对C程序和Python脚本进行调试,测试代码CSDN下载链接:测试代码。在博客最后介绍一下vscode比较好用的几个插件。
2.1、vscode调试C程序
1) 由于我们用的平台是windows,首先我们需要安装MinGW(著名C/C++编译器GCC的Windows版本),安装教程可参考MinGW-w64安装教程
2) 配置好MinGW之后,创建c_test.c
,将下列代码复制到c_test.c
中
#include <stdio.h>
int main()
{
int a = 10;
int b = 1002;
printf("%d", a);
printf("%d", b);
for(int i = 0; i< 100; i++)
{
a = a + i;
b = b + i;
printf("%d", a);
printf("%d", b);
}
/* 我的第一个 C 程序 */
printf("Hello, World! \n");
return 0;
}
然后如下图所示,按照顺序依次选择
① 点击 运行=>启动调试
② 选择 C++(GDB/LLDB)
③ 选择 gcc.exe 生成和调试活动文件
然后在c_test.c
程序的根目录下会生成.vscode
文件夹,生成的.vscode
文件夹下包含launch.json
和tasks.json
文件。
配置launch.json
和tasks.json
文件我们有两种方法:
在配置前我们需要先确定MinGW的路径,建议直接放在C盘根目录下。然后确定C:\MinGW\bin
是否添加到环境变量Path
中。
第一种:
我们直接对launch.json
进行如下修改(配置miDebuggerPath的路径):
launch.json文件
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "gcc.exe - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe", //修改为本地路径
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": false
}
],
"preLaunchTask": "C/C++: gcc.exe 生成活动文件"
}
]
}
tasks.json文件
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe 生成活动文件",
"command": "C:\\MinGW\\bin\\gcc.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${fileDirname}\\*.c", //此处设置编译需要的源文件,有多个,要分别设置
// "${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
}
],
"version": "2.0.0"
}
第二种(慎用):
需要安装c/c++ runner
插件,装好插件之后会自动生成下面所示文件(仍然需要更改launch
文件的program
和cwd
参数)。
我们打开vscode的设置界面,直接配置gcc.exe
和gdb.exe
的文件路径
通过第二种方法配置debug
,下次直接运行调试,就不用再创建launch.json
和task.json
了,但是仍然需要更改launch
文件的program
和cwd
参数。
3)完成上述操作后,我们重新点击 运行=>启动调试 就可以添加断点调试了。
BUG记录(2021-10-29):
新版本出现BUG记录:
使用vscode-1.61.2,c/c++插件1.7.1。在vscode中配置launch.json和task.json。.vscode配置下载链接。
直接下载,然后替换本地的.vscode文件,再将里面的dgb路径修改为你自己的本地路径即可。
缺点:由于c/c++版本匹配的问题,配置好之后进行debug断点调试,不会在断点处停留,而是直接生成结果,尝试了很多版本都没有解决这个问题。
所以,请谨慎下载该文件。
BUG记录(2021-10-30):
上面BUG已经解决了,问题:在VSCode中无法进行调试,因为gcc/g++都可以运行,所以怀疑是vscode和c/c++插件版本的问题,而且在vscode和cpptools官网上也有人反应是版本的问题,但是最后发现原来是MinGW安装的问题。
笔者使用的电脑系统是win10,这里提供已经编译好的MinGW,各位看官可以直接复制到本地,然后配置一下环境变量就可以正常使用了。(MinGW下载链接)
2.2、vscode调试Python脚本
1) vscode调试Python脚本很简单,我们首先创建python_test.py
脚本,将下列程序复制到python_test.py
脚本中
import os
import sys
def num_1_100():
for i in range(100):
print(i)
num_1_100()
2) 首先打开文件=>首选项=>输入settting.json=>打开settting.json文件如下(主要是头两行,为python的路径配置,其他行做为参考可不看):
{
"python.pythonPath": "D:\\Users\\wzf\\AppData\\Local\\Programs\\Python\\Python37\\python.exe",
"python.linting.enabled": false,//忘了是什么东西了,反正有用
"editor.fontLigatures": null,
"pyqt-integration.pyrcc.compile.filepath": "${qrc_name}.py",
"pyqt-integration.pyuic.cmd": "D:\\Users\\wzf\\AppData\\Local\\Programs\\Python\\Python37\\Scripts\\pyuic5.exe",
"pyqt-integration.qtdesigner.path": "D:\\Users\\wzf\\AppData\\Local\\Programs\\Python\\Python37\\Lib\\site-packages\\qt5_applications\\Qt\\bin\\designer.exe",
"workbench.editorAssociations": {
"*.ipynb": "jupyter-notebook"
},
"editor.fontSize": 15,
"launch": {
"version": "0.2.0",
"configurations": [
],
"compounds": []
},
"security.workspace.trust.untrustedFiles": "open",
"files.autoSave": "afterDelay",
"security.workspace.trust.enabled": false,
"code-runner.clearPreviousOutput": true,
"code-runner.executorMap": {
"javascript": "node",
"java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
"c": "cd $dir && gcc *c -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
"objective-c": "cd $dir && gcc -framework Cocoa $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
"php": "php",
"python": "python -u",
"perl": "perl",
"perl6": "perl6",
"ruby": "ruby",
"go": "go run",
"lua": "lua",
"groovy": "groovy",
"powershell": "powershell -ExecutionPolicy ByPass -File",
"bat": "cmd /c",
"shellscript": "bash",
"fsharp": "fsi",
"csharp": "scriptcs",
"vbscript": "cscript //Nologo",
"typescript": "ts-node",
"coffeescript": "coffee",
"scala": "scala",
"swift": "swift",
"julia": "julia",
"crystal": "crystal",
"ocaml": "ocaml",
"r": "Rscript",
"applescript": "osascript",
"clojure": "lein exec",
"haxe": "haxe --cwd $dirWithoutTrailingSlash --run $fileNameWithoutExt",
"rust": "cd $dir && rustc $fileName && $dir$fileNameWithoutExt",
"racket": "racket",
"scheme": "csi -script",
"ahk": "autohotkey",
"autoit": "autoit3",
"dart": "dart",
"pascal": "cd $dir && fpc $fileName && $dir$fileNameWithoutExt",
"d": "cd $dir && dmd $fileName && $dir$fileNameWithoutExt",
"haskell": "runhaskell",
"nim": "nim compile --verbosity:0 --hints:off --run",
"lisp": "sbcl --script",
"kit": "kitc --run",
"v": "v run",
"sass": "sass --style expanded",
"scss": "scss --style expanded",
"less": "cd $dir && lessc $fileName $fileNameWithoutExt.css",
"FortranFreeForm": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
"fortran-modern": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
"fortran_fixed-form": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
"fortran": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"
},
"workbench.editor.enablePreview": false,
"terminal.integrated.defaultProfile.linux": "",
"terminal.integrated.automationShell.windows": null,
"debug.terminal.clearBeforeReusing": true,
"terminal.integrated.allowMnemonics": true,
"code-runner.runInTerminal": true,
"debug.onTaskErrors": "debugAnyway",
"terminal.integrated.confirmOnExit": true,
"python.defaultInterpreterPath": "D:\\Users\\wzf\\AppData\\Local\\Programs\\Python\\Python37\\python.exe",
"pyqt-integration.pyuic.compile.filepath": "${ui_name}.py",
"editor.suggestSelection": "first",
"vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
"workbench.iconTheme": "material-icon-theme",
"notebook.cellToolbarLocation": {
"default": "right",
"jupyter-notebook": "left"
}
}
将上述python路径配置完成之后,点击 运行=>启动调试 => Python文件
就可以正常的调试Python脚本了(需要在本地安装Python)
下面主要介绍一下vscode调试C程序和Python常用的插件。
插件1:C/C++
插件2:Code Runner (可直接运行C C++ Python Java,但无法调试)
插件3:LiveCode for python (直接显示Python脚本变量结果)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。