当前位置: 首页 > news >正文

tool站长工具项目代理

tool站长工具,项目代理,wordpress的数据库,规划管理部门的网站建设文章目录 makefleCMakegdb调试 与 coredumpValgrind 内存检测gtest 单元测试 makefile 介绍 安装 : sudo apt install make makefile 的规则: 举例说明 包括#xff1a;目标文件 、 依赖文件 、 生成规则 使用 #xff1a; make make clean CMake : CMake是一个…文章目录 makefleCMakegdb调试 与 coredumpValgrind 内存检测gtest 单元测试 makefile  介绍 安装 :   sudo apt install make makefile 的规则:   举例说明 包括目标文件 、 依赖文件 、 生成规则 使用 make    make  clean  CMake : CMake是一个跨平台的构建工具用于管理和生成C项目的构建过程。它可以自动生成Makefile、Visual Studio项目文件、Xcode项目文件等极大地简化了源代码跨平台构建的过程。 安装   sudo apt-get  install  cmake   。 linux 中使用 CMake 生成 Makefile 并编译流程 - 编写CMake 配置文件  CMakeList.txt .  - 执行命令 cmake PATH 生成 Makefile 其中 PATH 是 CMakeList.txt所在的目录 -使用   cmake   命令进行编译 CMakeLists.txt 文件示例 #CMakeLists.txt 基础用法#CMake 最低版本要求 cmake_minimum_required(VERSION 3.27.4)#项目信息 project(project.exe)#指定生成的文件 add_executable(CMake project.exe project.c speak.c) 执行 cmake .     (会在当前文件下 生成一个Makefiles ) gdb调试 与  coredump gdb 是linux 程序员的一大利器 安装 sudo  apt-get  install  gdb 使用前提: 文件编译的时候 带上 -g  gcc  -g   project.c  -o  project.exe    启动: gdb  project.exe gdb  常用命令 - 获取帮助   hlep  -  break  设置断点 , 命令接收行号 或者函数作为参数 - info break   可以查看断点    - clear    可以清除断点 - run  运行程序到达中断处     -next 命令(缩写 n )  单步执行   可以指定数字    n   1(其他的都可以) -continue 命令(缩写 c )  想要继续执行 , 直到遇到下一个断点 - print (缩写 p )   监视变量 - 临时修改变量    命令  set  var    如set  var   a 100 - bt 查看堆栈情况 Coredump  调试 在程序运行过程中出现严重错误导致程序崩溃时操作系统将程序的内存状态保存到一个特殊的文件中以便进行后续的调试和分析。 当程序发生错误时操作系统会默认生成一个core文件其中包含了程序崩溃时的内存状态、寄存器值、堆栈信息等。这个core文件可以被调试器工具如gdb加载用于分析程序崩溃的原因。 前期设置: - 1 . 设置core 文件的生成的目录 , 其中%e表示程序文件名 , %p 表示进程的ID , 如果不设置,那么会在当前目录生成  core 文件 方法:   echo /data/coredump/core.%e.%p /proc/sys/kernel/core_pattern 我们要确保   data  和 coredump存在   mkdir  自己创建一个你也可以放在其他文件下 我这里放在了 / 根目录下 使用cat  查看core的生成目录 -  2 .  将生成的 core 改成不受限制    ulimit  -c  unlimited 什么情况下会导致程序异常退出: - 非法指针的访问 ,堆栈溢出 如何调试: 1 编译时添加 -g  选项 ,增加调试信息 2 gdb  project.exe  core  core_file       (core文件的目录) - bt  或者 where 查看调用栈的信息 -     查看某一层的信息  frame   n     (n  从0开始 , frame  0 表示栈顶) - up  n      上移n 层 -down  n    下移 - info  frame  查看当前层的信息 - info  args  查看当前函数的参数名及其值 - info  locals   打印当前函数中所有局部变量及其值 内存检测 Valgrind 检测和调试程序的开源工具。 它主要用于发现和分析内存泄漏、访问越界、使用未初始化的变量等常见的程序错误。 使用Valgrind可以帮助开发人员在早期发现和解决潜在的内存错误提高代码的质量和可靠性。 安装:   sudo  apt-get install valgrind Memcheck   检查步骤 1.  编译时带上   -g 2. 执行 :    valgrind  --toolmemcheck  --leak-check   ./you  program  部分结果分析 All heap blocks were freed -- no leaks are possible 这表示程序在退出之前已经正确释放了所有的堆内存并且没有内存泄漏。 ERROR SUMMARY: n errors from m contexts 这表示Valgrind检测到n个内存错误并且这些错误发生在m个上下文中。Valgrind会提供更详细的错误信息以便你能够定位和修复这些问题。 Invalid read/write of size n 这表示程序尝试读取或写入大小为n的内存块但该内存块的访问是无效的。可能存在越界访问、空指针解引用等问题。 Conditional jump or move depends on uninitialised value(s) 这表示程序在条件分支或移动操作中使用了未初始化的值。这可能导致不可预测的行为。 Invalid free/delete 这表示程序尝试释放一个无效的内存块。通常是因为重复释放、野指针等问题。 gtest 单元测试 用于C的流行单元测试框架可以帮助你编写和运行自动化的单元测试代码 搭建测试框架: 下载方法 : git clone https://github.com/google/googletest.git 1  cd   googletest 2  cmake   ./ 3  make 最后 sudo make install  大功告成  测试demo: demo1.h #ifndef _DEMO1_H_ #define _DEMO1_H_int factorial(int n);#endif // _DEMO1_H_ ~demo1.cc #include demo1.hint factorial( int n){int result 1;for( int i1 ;in; i){result *i;}return result; } ~接下来我们测试factorial 函数是否正确 编写一个测试用例   demo1_main.cc #include limits.h #include demo1.h #include gtest/gtest.hnamespace{TEST( factorialTest ,Negative ){//负数EXPECT_EQ(1 , factorial(-5));EXPECT_EQ( 1 , factorial(-1));EXPECT_GT( factorial(-10) , 0);}TEST(factorialTest , Zero){EXPECT_EQ( 1 , factorial(0)); }TEST( factorialTest , Positive){EXPECT_EQ(1 , factorial(1));EXPECT_EQ(2 , factorial(2));EXPECT_EQ(6 , factorial(3));EXPECT_EQ(40320 , factorial(8)); }} //namespace ~说明 - 1、 TEST 是 gtest 的测试宏 我们的测试用例必须这样写 - 2、factorialTest  是测试套的名字 一个测试套可以包含多个测试用例 - 3、 EXPECT_EQ 、EXPECT_GT  等等都是 gtest  提供的测试断言 - 4、EXPECT_EQ 会返回成功或者失败 既我们测试用例的成功或者失败 - 5编译:  g  demo1.cc demo1_main.cc  -lgtest  -std c11  -lgtest_main  -lpthread  -o  demo    - 6 、 执行 ./demo 如果全部是绿色的· 那么恭喜你写的方法可能没有问题。
http://www.hkea.cn/news/14328766/

相关文章:

  • 柳州企业网站制作哪家好电子商务网站建设项目范围
  • 买衣服网站排名自助建站最大
  • 专教做蛋糕的网站手机上的编程软件
  • 关键字查询我的网站怎么做宿迁房产网租房信息
  • 建设宠物网站的可行性芭蕉视频app无限次数
  • 临沂网站建设联系方式国内h5网站欣赏
  • 服务器不稳定 如何让百度重新收录网站开发个dapp要多少钱
  • 江苏国龙翔建设网站网页设计评价
  • 做mla网站企业手机网站建设策划
  • 微信公众号做微网站吗做网站小程序多少钱
  • asp建设网站需要了解什么建网站衡水哪家强?
  • 网站网站到底怎么做服装外贸公司大量订单外发
  • 公司设计一个网站揭阳企业建站系统模板
  • 濮阳团购网站建设安卓android下载安装
  • 个人做网站花多少钱企业网站模板中文
  • 做情趣网站违法吗域名哪里注册
  • 看案例网站做平面设计需要学什么软件
  • 木马网站怎么做网站建设教程asp
  • 网站开发项目文档南山做网站公司
  • 网站开发费用算无形资产么哈尔滨网站设计多少钱
  • 响应式网站建设系统好业宝微商城
  • 达川网站制作南宁模板建站
  • 专业网站建设策划西安搬家公司收费标准
  • 深圳市网站制作网站建设解决方案
  • 做地推的网站桂林建设银行招聘网站
  • 做电影网站 资源去哪里找怎么设置自己的网站
  • 程序员做任务的网站空间设计公司网站
  • 丹阳网站建设公司阿里云wordpress数据库
  • 网站建设流程行业现状如何代做网站
  • 珠海网页模板建站大型菜谱网站建设