目录
今天又是悲伤的一天,看easysat源码一天后,发现关键核心的算法部分一脸懵,无从下手。。。。。于是试图整一个调试,单步运行康康。clion还要cmake搞半天没搞懂,先用vs凑合一下吧/(ㄒoㄒ)/~~
目前困惑:
cmakelist,makefile,终端,调试控制台,输出,为啥需要自己加#include,以及clion里边又该咋搞。还有run code为啥报错但是运行就没问题?😵
教训:
一定要小心不要加中文路径,还有不要有小括号。
搜不太懂得资料的时候,不妨先学习一下这个要搜得东西,,,虽然貌似好像也用处不大/(ㄒoㄒ)/~~
加油!!
(118条消息) 一文搞懂vscode的几项基本配置(超详细讲解)_Emily-C的博客-CSDN博客_vscode基本配置
(118条消息) 【使用教程】VSCode创建json文件_剑宇2022的博客-CSDN博客_vscode json
还是没看太通透,可能要自己多试试,一会儿试试
如何让minisat运行成功的:
四个配置文件:
所有与绝对路径相关得都要改成自己得,mingw如果下载了dev c++,在dev里边可以找到
c_cpp_properties.json
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
"C:\\Program Files (x86)\\Dev-Cpp\\MinGW64\\x86_64-w64-mingw32\\include"
//如果没有配置settings上一行必须加,否则报错找不到stdint.h等等头文件
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "C:\\Program Files (x86)\\Dev-Cpp\\MinGW64\\bin\\gcc.exe",
"cStandard": "c89",
"cppStandard": "c++14",
"intelliSenseMode": "windows-gcc-x64",
"configurationProvider": "ms-vscode.makefile-tools"
}
],
"version": 4
}
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Launch (GDB)",
"type": "cppdbg",
"request": "launch",
"targetArchitecture": "x86",
"program": "${workspaceRoot}\\${fileBasename}.exe",
"miDebuggerPath": "C:\\Program Files (x86)\\Dev-Cpp\\MinGW64\\bin\\gdb.exe",//mingw路径
"args": ["C:\\Users\\woaixiaomaomi\\Desktop\\ccnf.cnf"],//main函数的参数
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"externalConsole": true,
"preLaunchTask": "g++"
},
{
"name": "C/C++: g++.exe 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\Program Files (x86)\\Dev-Cpp\\MinGW64\\bin\\gdb.exe",//mingw路径
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask":"C/C++: g++.exe 生成活动文件"//,"test"
}
]
}
tasks.json
{
"version": "2.0.0",
"command": "g++",
"args": [
"-g",
"-std=c++11",
"${file}",
"-o",
"${workspaceRoot}\\${fileBasename}.exe"
],
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"relative",
"${workspaceRoot}"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
},
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe 生成活动文件",
"command": "C:\\Program Files (x86)\\Dev-Cpp\\MinGW64\\bin\\g++.exe",//mingw路径
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
}
]
}
settings.json
{
"files.associations": {
"*.tcc": "cpp",
"array": "cpp",
"atomic": "cpp",
"cctype": "cpp",
"clocale": "cpp",
"cmath": "cpp",
"cstdarg": "cpp",
"cstddef": "cpp",
"cstdint": "cpp",
"cstdio": "cpp",
"cstdlib": "cpp",
"cwchar": "cpp",
"cwctype": "cpp",
"deque": "cpp",
"unordered_map": "cpp",
"vector": "cpp",
"exception": "cpp",
"algorithm": "cpp",
"functional": "cpp",
"iterator": "cpp",
"memory": "cpp",
"memory_resource": "cpp",
"numeric": "cpp",
"optional": "cpp",
"random": "cpp",
"string": "cpp",
"string_view": "cpp",
"system_error": "cpp",
"tuple": "cpp",
"type_traits": "cpp",
"utility": "cpp",
"fstream": "cpp",
"initializer_list": "cpp",
"iosfwd": "cpp",
"iostream": "cpp",
"istream": "cpp",
"limits": "cpp",
"new": "cpp",
"ostream": "cpp",
"sstream": "cpp",
"stdexcept": "cpp",
"streambuf": "cpp",
"typeinfo": "cpp"
}
}
easysat.cpp加两行
#include <stdint.h>
#include <stdlib.h>
调试步骤:
f5单步调试
断点得选择在行号前
每次调试过程中只有退出才可以进行下次调试或运行,不然会报错