搭建stressapptest调试环境:VSCode的分步教程

vscode调试stressapptest详解

  • 一、环境准备
  • 二、设置调试配置
    • 2.1、编辑launch.json文件和task.json文件
    • 2.2、将 stressapptest 编译成 debug 版本
  • 三、运行调试
  • 总结

一、环境准备

stressapptest(简称SAT)是一种用于在Linux系统上测试系统稳定性和可靠性的工具,通过产生CPU、内存、磁盘等各种负载来测试系统的稳定性。
在这里插入图片描述

VSCode(Visual Studio Code)是一款轻量级的现代化代码编辑器,为开发者提供了丰富的功能和扩展,是一个理想的集成开发环境。

本文章的目标是通过分步指导,演示如何在VSCode中搭建Stressapptest的调试环境。会介绍如何准备工作环境、创建Stressapptest项目、设置调试配置、运行调试,并解决可能出现的常见问题。

(1)下载与安装VsCode

  1. 打开浏览器转到VsCode的官方网站。
    在这里插入图片描述

  2. 在网站上找到想要的下载选项(Windows、macOS、Linux),然后点击下载按钮。
    在这里插入图片描述

  3. 下载完成后,Windows系统是双击下载的安装程序(.exe文件)进行安装,Mac系统则将下载的文件拖动到“应用程序”文件夹中进行安装,Linux系统执行相关命令安装(比如sudo dpkg -i code_1.45.1-1589445302_amd64.deb)。

  4. 安装完成后在启动菜单(Windows)、软件管理器(Linux)或启动台(macOS)中找到并启动VsCode。

(2)下载stressapptest的源码和配置环境:

git clone https://github.com/stressapptest/stressapptest.git
# 配置环境
cd stressapptest
./configure

(3)在VSCode中创建stressapptest项目:打开VSCode,连接到Linux服务器,然后打开stressapptest的源码文件夹导入stressapptest相关文件。
在这里插入图片描述

二、设置调试配置

2.1、编辑launch.json文件和task.json文件

  1. 打开VSCode,连接到Linux服务器,然后打开stressapptest的源码文件夹。

  2. 点击左侧的调试图标,然后点击“创建一个 launch.json 文件”链接,或者使用快捷键“Ctrl + Shift + D”,以进入调试视图。
    在这里插入图片描述

  3. 在弹出的选择环境的下拉菜单中,选择“添加配置”选项,然后选择"Shell Launcher"或者"Node.js"。
    在这里插入图片描述

  4. 编辑launch.json:在弹出的编辑器中可以看到一个名为“launch.json”的文件,在这里配置调试设置。需要指定Stressapptest的可执行文件路径、传递给Stressapptest的参数,以及其他必要的配置。"launch.json"文件配置选项:

    {
      "version": "0.2.0",
      "configurations": [
        {
          "name": "Stressapptest Debug",
          "type": "cppdbg",
          "request": "launch",
          "program": "${workspaceFolder}/src/stressapptest",
          "args": ["-s", "60", "-m", "1024"],
          "stopAtEntry": false,
          "cwd": "${workspaceFolder}"
        }
      ]
    }
    
  5. 保存"launch.json"文件。

  6. 编辑launch.json:在.vscode隐藏文件夹中创建一个名为 task.json 的文件,并在其中定义构建任务。示例:

    {
      "version": "2.0.0",
      "tasks": [
        {
          "label": "build Stressapptest",
          "type": "shell",
          "command": "/usr/bin/make",  // 可能是make命令也可能是其他构建工具的命令
          "args": [
          ],
          "group": {
            "kind": "build",
            "isDefault": true
          },
          "problemMatcher": {
            "owner": "cpp",
            "fileLocation": ["relative", "${workspaceFolder}"],
            "pattern": {
              "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
              "file": 1,
              "line": 2,
              "column": 3,
              "severity": 4,
              "message": 5
            }
          }
        }
      ]
    }
    
  7. 保存"task.json"文件。

2.2、将 stressapptest 编译成 debug 版本

打开代码src目录,找到编译文件(通常是 Makefile)或者编译脚本。修改 CFLAGSCXXFLAGS 变量,如下所示:

CFLAGS = -g -O0 -DDEBUG_FLAG
CXXFLAGS =  -DCHECKOPTS -Wreturn-type -Wunused -Wuninitialized -Wall -O0 -g -funroll-all-loops  -funroll-loops -DDEBUG_FLAG

重新make clean && make即可。

三、运行调试

  1. 选择VSCode的调试视图,在顶部的菜单栏中选择“调试” -> “启动调试”来启动调试会话。

  2. 选择之前配置的stressapptest调试配置,比如“Stressapptest Debug”。

  3. 点击“启动”按钮启动Stressapptest程序,并将其连接到调试器。

  4. 在调试控制台中,可以设置断点、监视变量,以及执行单步调试和其他调试操作。

在这里插入图片描述

总结

博主的环境:

  • Linux系统:华为云服务器,搭载的Ubuntu 22.0系统。
  • IDE:vscode,安装了C/C++、Remote-SSH、MakeFile等插件。
    搭建 Stressapptest 的调试环境涉及以下步骤:

调试环境搭建步骤:

  1. 下载 Stressapptest 的源代码。可以从官方网站或源代码管理工具(如 Git)中获取源代码。

  2. 安装编译 Stressapptest 所需的依赖库和工具。通常需要安装 GCC 编译器、Make 工具和调试器(如 GDB)等。

  3. 编辑 Makefile 或配置脚本,确保为编译添加 -g 参数以包含调试信息。

  4. 运行 make 命令来编译 Stressapptest。

  5. 编辑启动文件launch.json,并使用VSCode的调试器(GDB)来启动 Stressapptest。

  6. 调试程序,查看调用堆栈。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/421893.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL】:高效利用MySQL函数实用指南

🎥 屿小夏 : 个人主页 🔥个人专栏 : MySQL从入门到进阶 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一. MySQL函数概论二. 字符串函数三. 数值函数四. 日期函数五. 流程函数&#x1…

MySQL:合并查询语句

1、查询表的数据 t_book表数据 SELECT * FROM db_book.t_book; t_booktype表数据 SELECT * FROM db_book.t_booktype; 提醒: 下面的查询操作的数据来自上图查询表的数据 2. 使用 UNION 查询结果合并,会去掉重复的数据 使用UNION关键字是,数…

Angular 由一个bug说起之四:jsonEditor使用不当造成的bug

一:问题 项目中使用了一个JSON第三方库: GitHub - josdejong/jsoneditor: A web-based tool to view, edit, format, and validate JSON 当用户编辑JSON格式的数据,查找替换时: 用户的期望结果是:$$ 被替换为$$_text&a…

centos7 部署harbor镜像仓库

1. 安装docker yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum list docker-ce.x86_64 --showduplicates |sort -r yum install docker-ce-17.09.1.ce -y syste…

分布式事务简介

分布式事务简介,通过组内分享学习到的知识,并进行讨论。 主要内容 分布式事务简介 分布式事务是指跨越多个数据库或服务的一系列操作,这些数据库或服务可能分布在网络的不同节点上,它们共同组成一个完整的逻辑工作单元&#xf…

用Python库angr来分析二进制文件

最近在学习二进制分析,了解到二进制加载器,于是跟着AI一起,学习了这个python可用的二进制加载器分析器angr,并写了这篇介绍的文章,儿童卡通风格,哈哈。 亲爱的代码侠客们,今天我们要一起踏上探索二进制文件…

CloudCanal x Hive 构建高效的实时数仓

简述 CloudCanal 最近对于全周期数据流动进行了初步探索,打通了Hive 目标端的实时同步,为实时数仓的构建提供了支持,这篇文章简要做下分享。 基于临时表的增量合并方式基于 HDFS 文件写入方式临时表统一 Schema任务级的临时表 基于临时表的…

蓝桥杯算法题汇总

一.线性表:链式 例题:旋转链表 二.栈: 例题:行星碰撞问题 三.队列 三.数组和矩阵 例题:

蓝灵娥驾到!国漫小师妹的魅力大揭晓!

在国漫中,有非常多出众的小师妹形象,如同璀璨的星辰,以其独特的魅力吸引着无数观众的目光。她们形象各异,或纯真善良,或勇敢智慧,或刁蛮任性,其魅力经久不衰。今天,就让我们以玄机科…

网络编程 io_uring

io_uring 1、概述 io_uring是Linux(内核版本在5.1以后)在2019年加入到内核中的一种新型的异步I/O模型; io_uring使用共享内存,解决高IOPS场景中的用户态和内核态的切换过程,减少系统调用;用户可以直接向…

2024年腾讯云会员老用户续费优惠活动,可领代金券

腾讯云优惠活动2024新春采购节活动上线,云服务器价格已经出来了,云服务器61元一年起,配置和价格基本上和上个月没什么变化,但是新增了8888元代金券和会员续费优惠,腾讯云百科txybk.com整理腾讯云最新优惠活动云服务器配…

数电实验之流水灯、序列发生器

最近又用到了数电实验设计的一些操作和设计思想,遂整理之。 广告流水灯 实验内容 用触发器、组合函数器件和门电路设计一个广告流水灯,该流水灯由 8 个 LED 组成,工作时始终为 1 暗 7 亮,且这一个暗灯循环右移。 1) 写出设计过…

MYSQL--JDBC优化

一.JDBC优化: 优化前提: 有时候我们并不清楚某些表当中一共有多少列,以及这些列的数据类型,这个时候我们就需要提前通过一些方法提前了解到这些数据,从而更好的进行输出 具体语句: package cn.jdbc;import java.sql.*;public class JDBCDEmo1 {public static void main(String…

MySQL篇—执行计划介绍(第二篇,总共三篇)

☘️博主介绍☘️: ✨又是一天没白过,我是奈斯,DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux,也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章,并且也会默默的点赞收藏加关注❣…

力扣SQL50 大的国家 查询

Problem: 595. 大的国家 Code select name,population,area from World where area > 3000000 or population > 25000000;

JS:原型与原型链(附带图解与代码)

一、原型 写在前面: 任何对象都有原型。 函数也是对象,所以函数也有原型。 1.什么是原型 在 JavaScript 中,对象有一个特殊的隐藏属性 [[Prototype]],它要么为 null,要么就是对另一个对象的引用,该对象…

数据可视化原理-腾讯-热力图

在做数据分析类的产品功能设计时,经常用到可视化方式,挖掘数据价值,表达数据的内在规律与特征展示给客户。 可是作为一个产品经理,(1)如果不能够掌握各类可视化图形的含义,就不知道哪类数据该用…

特殊设计模式

▶实现一个类,不能被拷贝 ▶实现一个类,只能在堆上创建 ❗实现一个类,只能创建在栈上 ❗设计一个不能继承的类 ❗单例模式——一个类只能生成一个对象   ❔饿汉模式——在每次程序启动都会自动生成一个对象   ❓懒汉模式——在第一次需要…

【数学建模获奖经验】2023第八届数维杯数学建模:华中科技大学本科组创新奖获奖分享

2024年第九届数维杯大学生数学建模挑战赛将于:2024年5月10日08:00-5月13日09:00举行,近期同学们都开始陆续进入了备赛阶段,今天我们就一起来看看上一届优秀的创新奖选手都有什么获奖感言吧~希望能帮到更多热爱数学建模的同学。据说点赞的大佬…

javaWebssh票据管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh票据管理系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模 式开发。开发环境为TOMCAT7.0,My…