精华内容
下载资源
问答
  • 前言前两天有小伙伴问起来如何用VScode搭建C语言的环境,正好我之前也想过用VScode搭建C++的环境(个人感觉VC6和Dev C++用着都不是很方便,Dev C++的调试功能不是很好用,而且界面也没有VScode好看,至于VC6我已经...

    3196877fff1d526f82bc0e5c6e2cae80.png

    前言

    前两天有小伙伴问起来如何用VScode搭建C语言的环境,正好我之前也想过用VScode搭建C++的环境(个人感觉VC6和Dev C++用着都不是很方便,Dev C++的调试功能不是很好用,而且界面也没有VScode好看,至于VC6我已经无力吐槽了,但是学校偏偏用它,美名其曰经典(不过VC6倒确实是很经典hhhh)),故此有了这篇文章。

    8e1f962b91573c44f88846f071713004.png

    当然如果懒得折腾,或者用的习惯Dev C++的调试功能的话,其实Dev C++作为C/C++的开发环境也是很不错的选择(尤其是对刚开始学习C语言的同学,注意不要安装在有中文的目录下)。

    闲话聊完,接下来动手搭建C和C++的环境。

    VScode简单介绍

    ​ VScode是一个微软旗下的一个广受欢迎的开源文本编辑器,相较于其他编辑器,VScode有着非常多的优点而让开发者们对其爱不释手,比如炫酷的主题、漂亮的外观、集成了终端以及轻量级的体积等等等等,VScode最厉害的地方在于他有着成熟的插件市场(我们下面马上就要用到)以满足开发者的各种开发需求,得益于这个插件市场,我们可以把VScode打造成各种开发环境。

    ​VScode的下载很简单,直接去官网下载安装即可。

    ba0ad1c764757980468ad9a0cda51b4c.png

    MinGW简单介绍和下载配置

    ​需要注意的一点是,VScode只是一个文本编辑器,本质上和Windows的记事本是一个东西,它不是一个编译器,它只是一个编辑器,编辑器是无法编译运行程序的,这是编译器的工作。那么为了让我们能够在VScode里面编译并运行C/CPP文件,我们需要去额外安装C和C++的编译器:GCC。Windows平台上的GCC移植版本是MinGW。我们用MinGW其实也就是用里面的GCC来编译我们写的C/C++文件。

    ​MinGW下载地址:http://sourceforge.net/projects/mi

    ​ 进去之后,选择files:

    ad896f405d9960a02cb0ccb36ef11cf9.png

    下载MinGW的压缩包:

    d6f88a56ccba59362284c219294adf3b.png

    下载过程由于是从外网下载,会比较慢,可以多试几次或者挂代理,另外根据笔者的经验来看外网的东西一般中午下载起来会比较快。

    下载好了之后把他放在一个没有中文和空格的目录下解压,然后配置环境变量。

    在win10的搜索栏(快捷键win+S)搜索环境变量会弹出系统属性,点击环境变量-->上方的用户变量里面找到Path-->点击编辑-->点击新建,然后把你的MinGW的bin路径复制进去(如:D:developmentMinGWbin),然后一路确定。

    ​ 这样环境变量就配置好了,我们可以随便找一个路径打开一个cmd输入:gcc --version来验证一下:

    c01fe0c07925d7535314cbb6ee4589dc.png

    接下来我们配置VScode

    VScode配置

    打开VScode,然后打开左边的插件市场,下载并安装两个插件:

    76a06a11ca0310aaa42ead56f42ed006.png

    Chinese:中文汉化插件,VScode默认是英文界面,为了方便咱给他改成中文的。在搜索栏搜索Chinese,选则中文简体点击右下角的安装(我这里安装过了所以没有那个安装按钮)。

    C/C++:一款C/C++语法高亮的代码插件。安装方式和Chinese一样。

    搞定之后我们来写一个C文件测试一下,点击左上角的文件-->打开文件夹-->选择一个空文件夹打开,然后右键-->新建文件:

    f9965ce044de71e732c0b2311df93617.png

    随便起个名(如Hello.c),随便写点代码,比如经典的Hello World:

    #include<stdio.h>intmain(void){printf("Hello World!");return0;}复制代码

    然后我们编译他,点击最上方的终端-->配置默认生成任务(也可以用快捷键ctrl+shift+b)然后你会看到这样一个选项:

    96180e88fa618b5368a5459cbf5e42c1.png


    ​ 这是让我们选择用什么来编辑这个文件,由于我们写的是C文件,应该用能够编译C文件的编译器(也就是我们上文配置的MinGW里面的GCC),我们点击这里的C/C++编辑器,然后就会发现我们这里生成了一个Hello.exe文件和.vscode文件夹。

    06f95c6088e243fcd0e2551e25e9a218.png


    打开一个终端(终端-->新终端),输入.Hello.exe来运行这个文件,你会发现终端成功输出HelloWorld,这代表成功运行。

    ​ 至于这个.vscode文件夹,是当前文件夹里的一些配置文件(比如这里的task.json,它其中写入了使用什么编译器,编译器的路径等信息)。核心示例:

    d8c97569bccf5555c3e059bf208607f2.png

    调试程序

    ​ 接下来我们说调试,VScode的调试快捷键是F5,按下F5,会出现调试器选择界面:

    3946aa17e98f1be9fe802203aad8dc9b.png

    选择GDB,再选择gcc,你会发现终端那里跳转到了调试控制台,并且.vscode文件夹下面又多了一个launch.json文件,上文我们已经说过了.vscode文件夹存放当前工作文件夹的一些配置文件,例如task.json其实是编译运行的配置文件,这里的launch.json文件就是调试相关的配置文件,详解如下:

    3b995c12057bed6bd657924c80e1a119.png


    我们来试着调试程序,按下F9是为当前所在行设置断点。当然你也可以将launch.json文件中的"stopAtEntry": false改为true,这样程序会在main函数开始暂停,相当于在main函数的起步打断点,进入调试之后VScode会给出一个调试工具,长这样:

    cc0c6a83bfabdca74401c090e3265251.png

    从左到右一次为:

    继续(F5)

    单步跳过(F10)

    单步调试(F11)

    单步跳出(shift+F11)

    重启(shift+ctrl+F5)

    停止(shift+F5)

    同时你可以在左边的变量区域监视变量变化情况,这些都是基本的调试功能,这里不再阐述。

    结束语

    ​ 到这里为止我们已经把VScode打造成了一个C和C++的开发环境,并尝试了编译运行和调试,你可以抛弃笨拙VC6和调试不方便的Dev C++转而使用VScode编写调试C/C++的程序了。祝你用的开心!

    分享作者:霜漠冰河,原文链接:https://juejin.im/post/6879387384669503501

    另外如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!

    C语言C++编程学习:

    点击领取C/C++编程学习资料jq.qq.com

    分享(源码、项目实战视频、项目笔记,基础入门教程)

    欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

    编程学习书籍分享:

    336ccc01412158c10fd8d0a980f03831.png

    编程学习视频分享:

    fc8c59190b0b9d5db4c8935f6b5bf657.png
    展开全文
  • VC断点调试

    千次阅读 2012-04-24 22:53:24
    f9 —— 设置/取消断点 f10 —— 单步执行 f11 —— 比f10的步幅小 f10在函数的调用时,直接跳过,在f11下,会进入函数体!  f5 —— 执行到下一个断点!  了解调试,首先要知道"断点"这个概念。断点就是...

    C/C++ code:
    f9 —— 设置/取消断点
    f10 —— 单步执行
    f11 —— 比f10的步幅小
    f10在函数的调用时,直接跳过,在f11下,会进入函数体! 
    f5 —— 执行到下一个断点!

        了解调试,首先要知道"断点"这个概念。断点就是程序运行中可能会中断的地方,方便开发者在程序运行的过程中查看

    程序当前的运行状态,比如变量的值,函数的返回值等等。究竟怎么使用断点呢?
     1.F9在当前光标所在的行下断点,如果当前行已经有断点,则取消断点。
        F5调试状态运行程序,程序执行到有断点的地方会停下来。
        F10单步执行程序。

        CTRL+F10运行到光标所在行。

        F11和F10的区别是,如果当前执行语句是函数调用,则会进入函数里面。

        SHIFT+F11跳出当前所在函数。

        特别说明:

        a.有的地方不能下断点。比如空行,基本类型定义语句(不初始化),等等非执行语句。比如

        int i; // 此行不能下断点

        int j=0;// 这里可以下

        CString str;// 这里可以下

        intk = Max(i,j);// 这里可以下

        b.不是所有断点都会(断)。比如下断点的语句在程序里面没有被执行。

        c.此外,ALT+F9还可以下条件断点,不过这个不常用,有兴趣的可以自己研究

     

    2.如何调试Release版的程序?

        有些程序在debug下运行的很好,但在release下却总是失败,默认情况下release是不能调试的。 怎么解决呢?

        其实"debug"和"release"都只是一个代号而已,各自对应一组不同的编译选项。

        在release的默认设置下,ALT+F7 ,调出工程设置对话框,切换到link选项卡,勾选"Generate debug info",然后再切换

    到C/C++选项卡,在"Optimizations"里面选"Disable(Debug)",在下面的"Debug info"里面选"Program Database for Edit

    and Continue".然后点OK保存设置,重新编译程序,下断点即可。

        3.上面两点已经能应付很多种情况了,但是有时候即使在debug下也不能下断点,我以前也曾经遇到过这种问题,一个

    调了层的dll,就是不能下断点。其实还除了上面的方法,还有一种最底层的实现技术:使用汇编。

        细心的人可能会发现,有时候在调试状态下当程序出现异常的时候,光标会指向汇编代码,而这个代码就是int 3,这其

    实是一个中断。

        在你的代码的任意地方加上

        __asm

        {

        int 3

        };

        用debug编译,然后直接运行程序。当程序执行到上述代码的时候,就会出现一个框,告诉你说一大堆信息,说程序错

    了,下面有"调试"、"终止"、"忽略",不用理,点调试就可以进入跟踪了。

    展开全文
  • 方法一,删除整个Debug文件夹,然后Rebuild All.方法二,关闭工程,删掉...方法三,去掉工程的所有断点,然后重新建,到网上找到好久怎么解决这个问题,最后还是用方法一解决了,可能和自己中间更改了DLL的生成路径有关。

    方法一,删除整个Debug文件夹,然后Rebuild All.

    方法二,关闭工程,删掉工程下的.opt和.ncb文件,打开工程试试,如果不行,看看删掉.dsw和.clw行不行。

    方法三,去掉工程的所有断点,然后重新建,

    到网上找到好久怎么解决这个问题,最后还是用方法一解决了,可能和自己中间更改了DLL的生成路径有关。

    展开全文
  • 不知道怎么回事,断点全无效了...  VC直接把整个文件格式化了一次,断点就可以用了菜单:编辑-〉高级-〉设置选定内容的格式 (Ctrl+K, Ctrl+F)通过比较文件发现是由于制表符Tab(0x09)引起的,原因不详。

    不知道怎么回事,断点全无效了,在网上搜到别人的解决方法,效仿之,解决。

     

    VC直接把整个文件格式化了一次,断点就可以用了
    菜单:编辑-〉高级-〉设置选定内容的格式 (Ctrl+K, Ctrl+F)
    通过比较文件发现是由于制表符Tab(0x09)引起的,原因不详。
    展开全文
  • vc 6.0开发ftp断点续传源代码

    热门讨论 2012-09-10 23:06:32
    先添加任务,然后设置onFinish(下载完成后的动作),最后start。 如果目录中已有该文件,程序会自动覆盖,不会出错。 默认下载端口是80,不支持其他端口。如果要这个功能,请修改Mydownload中的fnMyDownload,...
  • VC6.0 不能断点调试的解决方法

    万次阅读 2010-07-14 09:54:00
    很久没有使用VC... ======================================================================================     现象是用 debug中的 step info或者run to cursor合着设置断点会出现O
  • vs2010断点无效

    2015-05-26 20:03:25
    不知道怎么回事,断点全无效了,在网上搜到别人的解决方法,效仿之,解决。 VC直接把整个文件格式化了一次,断点就可以用了 Ctrl + A全选  菜单:编辑-〉高级-〉设置选定内容的格式 (Ctrl+K, Ctrl+F...
  • 各位大佬们,我想问下VC5.4如何才能设置断点呢,我点行标,产生个小红点,但是他好像不是断点,单步调试和跳跃调试又怎么搞呢,求解
  • vc调试 main的参数

    2008-09-08 16:24:35
    a问:我要在VC下下断点调试,但是程序Main需要输入两个参数才能运行,怎样设置才能单步调试啊? 如:我必须在cmd窗口中键入 test.exe aa.bmp 才能运行,怎么单步调试,设置两个路径参数?答:在VC里有输入main参数的选项。...
  • 不知道怎么回事,断点全无效了,在网上搜到别人的解决方法,效仿之,解决。 VC直接把整个文件格式化了一次,断点就可以用了 Ctrl + A全选 菜单:编辑-〉高级-〉设置选定内容的格式 (Ctrl+K, Ctrl+F) 通过...
  • void CCTV_MP3_Speak::OnBnClickedSoftwareKey() ...在if(……)设置断点,发现虚拟键盘的win键弹起消息怎么在截获之前就已经执行了按入WIN键,没有达到屏蔽WIN键消息目标; 各位有没有遇到该问题?
  • 前两天打开一个开源的Qt项目,里面包含了几个工程,我想用编辑器启动其中一个项目加断点调试,可是不知道该怎么弄,因为Qt并没有像vc那样右键“设置为启动项目”类似的操作,就反复看pro文件,Makefile文件,百思...
  • 刚创建的vc 和 nav 都为nil,这给断点调试增加了很多麻烦,难道是xcode的bug吗? 群里问问大牛,不得姐,网上有查,最终找到解决方法: 在Project的Build Settings中把Optimization Level 设置成 None 即可。
  • 刚创建的vc 和 nav 都为nil,这给断点调试增加了很多麻烦,难道是xcode的bug吗? 群里问问大牛,不得姐,网上有查,最终找到解决方法: 在Project的Build Settings中把Optimization Level 设置成 Non
  • 前言 在想自己该怎么去写博客,该写些什么,不知道有哪些东西需要去记录,就记录一下自己做的练习和中间需要记录的知识点吧 准备 安装Windows XP虚拟机 ...F9 设置断点 Alt+5 打开寄存器窗口 Alt+6 查看内
  • iOS面试题(八)

    2018-05-31 17:57:33
    1、xcode在 release 模式下断点调试, 对象在打印的时候有值,断点调试却没值, 这是怎么回事? 设置Build Settings-&gt;Optimization Level 为None[-OO],就可以了 改为: 2、不手动指定autoreleasepool的...
  • 关于多线程的编程

    2009-04-12 17:13:00
    今天编了一下午,终于把多线程文件查找做好了,在VC 6.0环境下,多线程调试太麻烦了,其中出现了很多的错误,不知道怎么在子线程中添加断点。回去好好问问其他同学。最后发现自己在Mutex初始化地方出现了错误,在...
  • C语言也能干大事 全部板书

    热门讨论 2011-08-08 14:35:18
    设置断点很简单,就是在要设置断点的代码行前边点击一下鼠标,有了一个红色小点就说明设置好了断点。 3、控制台程序的入口是main,Win32程序的入口是WinMain 4、以前用TuborC的同学会问“什么叫工程?”。在以前...
  • vc++ 开发实例源码包

    2014-12-16 11:25:17
    SettingDlg.h 设置对话框类文件 LocalInfoDlg.h 查看本地信息对话框类文件 freeeim_FreeEIM_企业即时通讯软件源代码2010年8月份最新版 如题。 FTP、HTTP 多线程断点续传下载文件 源码 如题。 gdiplus应用实例 如...
  • vc++ 应用源码包_2

    2012-09-15 14:27:40
    VC断点续传源代码 从fnMyDownload开始,程序首先解析输入的url,拆分为地址,路径,文件名等。然后获取文件头,得到文件大小,然后再下载。重点函数是ThreadDownLoad。下载完之后用FileCombine合并文件。Mydownload....
  • vc++ 应用源码包_1

    2012-09-15 14:22:12
    VC断点续传源代码 从fnMyDownload开始,程序首先解析输入的url,拆分为地址,路径,文件名等。然后获取文件头,得到文件大小,然后再下载。重点函数是ThreadDownLoad。下载完之后用FileCombine合并文件。Mydownload....
  • vc++ 应用源码包_4

    2012-09-15 14:38:35
    VC断点续传源代码 从fnMyDownload开始,程序首先解析输入的url,拆分为地址,路径,文件名等。然后获取文件头,得到文件大小,然后再下载。重点函数是ThreadDownLoad。下载完之后用FileCombine合并文件。Mydownload....
  • vc++ 应用源码包_3

    2012-09-15 14:33:15
    VC断点续传源代码 从fnMyDownload开始,程序首先解析输入的url,拆分为地址,路径,文件名等。然后获取文件头,得到文件大小,然后再下载。重点函数是ThreadDownLoad。下载完之后用FileCombine合并文件。Mydownload....
  • vc++ 应用源码包_6

    2012-09-15 14:59:46
    VC断点续传源代码 从fnMyDownload开始,程序首先解析输入的url,拆分为地址,路径,文件名等。然后获取文件头,得到文件大小,然后再下载。重点函数是ThreadDownLoad。下载完之后用FileCombine合并文件。Mydownload....
  • vc++ 应用源码包_5

    2012-09-15 14:45:16
    VC断点续传源代码 从fnMyDownload开始,程序首先解析输入的url,拆分为地址,路径,文件名等。然后获取文件头,得到文件大小,然后再下载。重点函数是ThreadDownLoad。下载完之后用FileCombine合并文件。Mydownload....
  • asp.net知识库

    2015-06-18 08:45:45
    怎么在ASP.NET 2.0中使用Membership asp.net 2.0-实现数据访问(1) ASP.NET 2.0 新特性 .NET 2.0里使用强类型数据创建多层应用 在MastPage中引用脚本资源 2.0正式版中callback的一些变化+使用示例(ASP.NET 2.0)...

空空如也

空空如也

1 2
收藏数 30
精华内容 12
关键字:

vc怎么设置断点