1.vscode怎么调试c语言 调试步骤
2.å¨VCä¸è½è°è¯Cï¼
3.在运行c的码无时候,出现调试错误是法调怎么回事?
4.cè¯è¨å¦ä½è°è¯
vscode怎么调试c语言 调试步骤
1、打开你要写c++程序的码无文件夹,我们这里新建一个Test文件夹并打开test,法调软件培训 源码打开后:使用VScode运行调试C/C++,码无在左侧打开的法调目录中新建一个 main.cpp 文件。
2、码无新建后点左侧的法调调试按钮(英文:Debug),可以看到,码无目前没有调试配置。法调
3、码无源码 协议这时我们需要配置自己的法调调试配置,回到资源管理器界面,码无我们可以看到目录下多了一个.vscode的法调文件夹,里面有一个launch.json文件。码无我们现在在这个文件夹中新建一个tasks.json文件。ipmessage源码我们需要改写这两个json文件的内容。
{
version: 0.2.0,
configurations: [
{
name: Run C/C++,
type: cppdbg,
request: launch,
program: ${ workspaceFolder}/${ fileBasenameNoExtension}.exe,
args: [],
stopAtEntry: false,
cwd: ${ workspaceFolder},
environment: [],
externalConsole: true,
MIMode: gdb,
miDebuggerPath: C:/Program Files (x)/mingw-w/i-8.1.0-posix-dwarf-rt_v6-rev0/mingw/bin/gdb.exe,
setupCommands: [
{
description: Enable pretty-printing for gdb,
text: -enable-pretty-printing,
ignoreFailures: false
}
],
preLaunchTask: build & run file
},
{
name: Debug C/C++,
type: cppdbg,
request: launch,
program: ${ workspaceFolder}/${ fileBasenameNoExtension}.exe,
args: [],
stopAtEntry: false,
cwd: ${ workspaceFolder},
environment: [],
externalConsole: true,
MIMode: gdb,
miDebuggerPath: C:/Program Files (x)/mingw-w/i-8.1.0-posix-dwarf-rt_v6-rev0/mingw/bin/gdb.exe,
setupCommands: [
{
description: Enable pretty-printing for gdb,
text: -enable-pretty-printing,
ignoreFailures: false
}
],
preLaunchTask: build & debug file
}
]
}
其中tasks.json文件内容(直接复制即可):
{
version: 2.0.0,
tasks: [
{
label: build & debug file,
type: shell,
command: g++,
args: [
-g,
-o,
${ fileBasenameNoExtension},
${ file}
],
group: {
kind: build,
isDefault: true
}
},
{
label: build & run file,
type: shell,
command: g++,
args: [
-o,
${ fileBasenameNoExtension},
${ file}
],
group: {
kind: build,
isDefault: true
}
}
]
}
4、我们已经完成了基本的配置工作,保存以上两个json文件后,再次点击左侧的ide 源码调试按钮(Debug),可以发现出现了两个新的配置,一个是直接运行程序的Run,一个是用来调试程序的Debug。
5、我们写一个简单的muiu源码c++程序来进行调试说明,程序源代码,我们在return 0这行添加了一个断点。
6、切换运行配置为Debug C/C++,点击运行按钮开始调试。
7、可以看到,弹出的终端输出了正确的结果,调试窗口中的变量中也有变量a和对应的值。
å¨VCä¸è½è°è¯Cï¼
.cppæ件æ¯å¨win console applicationä¸å»ºç«ç
å¨å·¦ä¸è§æ¾å°è§å¾ââ解å³æ¹æ¡èµæºç®¡çå¨
å¨èµæºç®¡çå¨ä¸å³é®ç¹å»èµæºæ件ââæ·»å æ°å»ºé¡¹ å°±è½å»ºç«.cppæ件äº
在运行c的时候,出现调试错误是怎么回事?
您的main函数的写法不是很规范,这可能导致异常。建议将main函数的返回值类型设为int,并在正常退出的情况下显式书写return 0,例如:int main(void)
{
/* 您的代码 */
return 0;
}
您的代码可以修改为:
#include <stdio.h>
int main(void)
{
int m;
float score;
char grade;
printf("请输入0~内的成绩:\n");
scanf("%f", &score);
m = (int)score / ;
switch (m)
{
case :
case 9:
grade = 'A';
break;
case 8:
grade = 'B';
break;
case 7:
grade = 'C';
break;
case 6:
grade = 'D';
break;
default:
grade = 'E';
}
printf("您的等级为:%c\n", grade);
return 0;
}
关于main函数标准的写法,您可以参阅:C语言main函数的正确写法究竟是什么?。
cè¯è¨å¦ä½è°è¯
ç®åæ¥è¯´ï¼æ两ç§æ¹å¼:ä¸ç§æ¯æºç debugï¼å³åææºç æ¥æ¾åºbugä½ç½®ï¼ä¸è¬ä½¿ç¨printf()æå°åºç¨åºæ§è¡æ¯ä¸æ¥çä¿¡æ¯;
ä¸ç§æ¯å¯æ§è¡æ件debugï¼éè¦ä½¿ç¨è°è¯å¨æ¥è¿è¡ã
1ãæºç debug
类似äºä¸é¢çæºç ï¼ä¸»è¦éè¿ç¨åºæ§è¡æ¶è¾åºçä¿¡æ¯ï¼æ¥å®ä½bugåºç°çä½ç½®ï¼ç¶ååä¿®æ¹æºç ã
#include <stdio.h>
void f() { ; }
int main()
{
#ifdef _DEBUG
printf("start main function!\n");
#endif
void f();
#ifdef _DEBUG
printf("leave main function !\n");
#endif
return 0;
}
2ãå¯æ§è¡æ件è°è¯ï¼windowså¹³å°å¸¸ç¨çå°±æ¯vs/vcèªå¸¦çè°è¯ï¼å¦å¤ä¸ä¸ªå°±æ¯å¾®è½¯èªå®¶å¼åçè°è¯å¨windbgãLinuxå¹³å°ä»¥gdb为常ç¨ã
IDEèªå¸¦çè°è¯å¨ä»¥VC6.0为ä¾ï¼ç¼åå®ä»£ç åï¼æå¿«æªé®çFï¼å³å¯è¿å ¥è°è¯ï¼æ¤æ¶å³é®ï¼éæ©âgo to disassembly"å³å¯æ¥çå°ç¨åºçåæ±ç¼ä»£ç ãä¸è¬è¿ç§æ åµï¼ä¸»è¦æ¯ä¸ºäºå¯¹Cè¯è¨è¿è¡åæ±ç¼å¦ä¹ ã
Windbgçåè½é常å¤ï¼å¯ä»¥è¿è¡æºç è°è¯ãå¯ä»¥è°è¯å¯æ§è¡æ件ãè¿å¯ä»¥è¿è¡å æ ¸è°è¯ï¼ä¹å¯ä»¥è°è¯dumpæ件ï¼ç¨çå¤äºï¼èªç¶çæï¼è¦è°è¯å¯æ§è¡æ件ï¼åªéè¦ç¹å»âFile"å¨å¼¹åºç对è¯æ¡ä¸éæ©âOpen Executeable"ï¼ç¶åæ¾å°èªå·±è¦è°è¯çç¨åºå³å¯ã
Linux常ç¨çæ¯Gdbè°è¯å¨ï¼å¼å¾æ³¨æçæ¯ï¼è¦ä½¿ç¨gdbè°è¯ï¼å¨ä½¿ç¨gccæè g++ç¼è¯C/c++æ件æ¶ï¼éè¦æ·»å -gåæ°æå¯ä»¥çæ符å·è¡¨ãä¸å¾æ¯ç¨gdbåæC++ä¸åéåå¸çä¸å¼ æªå¾ï¼å¤§ä½ä¸çä¸ä¸é¿ä»ä¹æ ·ï¼ç¨çå¤äºèªç¶çæï¼ä¸éè¦å¯ä»¥å»å¦ä¹ ã