文档章节

vs code在ubuntu上调试c代码

S
 ShuyangZ
发布于 2016/12/31 00:30
字数 465
阅读 87
收藏 0

1、打开vs code,打开目录HELLOWORLD,新建一个hello.c,键入一下内容

#include <stdio.h>
#include "pthread.h"

void *test_thread(void *arg)
{
  for(;;)
  {
    fprintf(stdout, "this is son thread\n");
    sleep(1);
  }
  
}
int main(void)
{
  int res;
  pthread_t TestThread;
  res = pthread_create(&TestThread, NULL,
      test_thread, NULL);
  for(;;)
  {
    fprintf(stdout, "this is main thread\n");
    sleep(1);
  }
  
}

2、 按F5选择c/c++调试器,会新建一个launch.json文件,文件中键入

{
    "version": "0.2.0",
    "configurations": [
        
        {
            "name": "C++ Launch (GDB)",                 // 配置名称,将会在启动配置的下拉菜单中显示
            "type": "cppdbg",                           // 配置类型,这里只能为cppdbg
            "request": "launch",                        // 请求配置类型,可以为launch(启动)或attach(附加)
            "launchOptionType": "Local",                // 调试器启动类型,这里只能为Local
            "targetArchitecture": "x86",                // 生成目标架构,一般为x86或x64,可以为x86, arm, arm64, mips, x64, amd64, x86_64
            "program": "${file}.out",                   // 将要进行调试的程序的路径
            "miDebuggerPath":"/usr/bin/gdb", // miDebugger的路径,注意这里要与MinGw的路径对应
            "args": ["",  "", ""],     // 程序调试时传递给程序的命令行参数,一般设为空即可
            "stopAtEntry": false,                       // 设为true时程序将暂停在程序入口处,一般设置为false
            "cwd": "${workspaceRoot}",                  // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
            "externalConsole": true,                    // 调试时是否显示控制台窗口,一般设置为true显示控制台
            "preLaunchTask": "gcc"                    // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
        }
    ]
}

3、按下F5随便选择一个task,会新建一个tasks.json,键入

{
    "version": "0.1.0",
    "command": "gcc",
    "args": ["-g","${file}","-o","${fileBasename}.out","-lpthread"],    // 编译命令参数
    "problemMatcher": {
        "owner": "cpp",
        "fileLocation": ["relative", "${workspaceRoot}"],
        "pattern": {
            "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
            "file": 1,
            "line": 2,
            "column": 3,
            "severity": 4,
            "message": 5
        }
    }
}

注意,代码中用到什么库就在args中加入相应的库

4、在hello.c页面下按下ctr+shift+b 编译代码,随后会在文件夹下生成hello.out文件,此时按下F5即可调试

© 著作权归作者所有

上一篇: socket can
下一篇: libuv交叉编译
S
粉丝 3
博文 26
码字总数 2841
作品 0
苏州
私信 提问
Deepin Linux 下用 vscode 调试 C/C++ 程序

Deepin Linux 下用 vscode 调试 C/C++ 程序 现在网上的大部分类似博客都是错的、有问题的、麻烦的; 而你如果有幸读到我的这篇文章,那么恭喜你,我的是正确的,没问题的,简单的。 Deepin L...

仰望星空的先生
2018/04/02
0
0
使用 VS Code 开发和调试 .NET Core 程序

电脑不想装几十个G的 VS2017,那就用 VS Code 吧 目标: 创建一个类库项目 Skany.Core,并用 Nuget 引用第三方组件 Hash 实现加密算法 创建一个单元测试项目 Skany.Tests,引用类库 Skany.Co...

felixnet
04/09
0
0
微软2018规划图:VS Code成重点培养对象

  【IT168 评论】近日有消息透露,微软已经制定出2018年的规划路线,并将Visual Studio Code计划列为未来重点的培养对象。该公司计划明年从三个角度来进行VS Code计划:happy coding;Node...

it168网站
2017/11/03
0
0
为visual studio code配置go开发环境(windows)

Windows下配置visual studio code开发go环境 1. 安装vs code 下载安装即可,然后设置autosave 很多材料说在file菜单就可以设置,但是我没找到。 我是在file->preference->user setting里,用...

一曲忠臣的战歌
2016/02/25
10.3K
15
Visual Studio Code C/C++ extension Dec 2017 update

Visual Studio Code C/C++ extension Dec 2017 update Visual C++ Team Blog2017-12-121 阅读 C++Stu Happy holidays! Today we’re shipping the December 2017 update to the Visual Stud......

Visual C++ Team Blog
2017/12/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

0.01-Win10安装linux子系统

一、安装Debian子系统 -1、控制面板设置: -1.1、打开“控制面板” —— “程序” —— “启用或关闭Windows功能” —— 勾选 “适用于Linux的Windows子系统” -2、设置: -2.1、打开“设置”...

静以修身2025
昨天
0
0
init 0-6 (启动级别:init 0,1,2,3,4,5,6)

启动级别: init 0,1,2,3,4,5,6 这是个很久的知识点了,只是自己一直都迷迷糊糊的,今天在翻出来好好理解下。。 0: 停机 1:单用户形式,只root进行维护 2:多用户,不能使用net file system...

圣洁之子
昨天
2
0
Android Camera HAL浅析

1、Camera成像原理介绍 Camera工作流程图 Camera的成像原理可以简单概括如下: 景物(SCENE)通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转为电信号,经过A/D(模数转...

天王盖地虎626
昨天
2
0
聊聊Elasticsearch的ProcessProbe

序 本文主要研究一下Elasticsearch的ProcessProbe ProcessProbe elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/monitor/process/ProcessProbe.java public class ProcessProb......

go4it
昨天
2
0
mysql PL(procedure language)流程控制语句

在MySQL中,常见的过程式SQL语句可以用在存储体中。其中包括IF语句、CASE语句、LOOP语句、WHILE语句、ITERATE语句和LEAVE语句,它们可以进行流程控制。 IF语句相当于Java中的if()...else if(...

edison_kwok
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部