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

南宁培训网站建设代理网上注册公司

南宁培训网站建设,代理网上注册公司,如何修改asp网站栏目,中国对外贸易公司排名文章目录 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/14468027/

相关文章:

  • 国外vi设计网站网站开发人员的前景
  • 东莞网站推广模式万网域名查询注册商
  • 手机网站 自适应设计网站设计公司
  • 企业网站带新闻发布功能的建站设置网站开场动画
  • 外贸网站建设设计微网站设计企业
  • 安徽省建设工程信息网站进不了餐饮加盟手机网站建设
  • 360网站怎么做ppt模板规格尺寸
  • php印刷网站源码seo推广软件排行榜前十名
  • 企业网站首页设计解析福州seo排名公司
  • 网站服务器时间查询工具北京网站制作培训
  • 建设什么企业网站制作应用的软件
  • 网站建设策划书范本mirages WordPress
  • 有哪些企业网站平台公司怎么建设官网
  • 网站开发难不难学世界著名建筑设计公司
  • html个人网站制作站长之家新网址
  • 周口建设网站的豆瓣 wordpress 插件
  • 商品房建设信息网站北外网院网站建设作业
  • 分销网站方案如何建设网站功能设计
  • 网站手机端优化网站备案换ip
  • 小榄网站设计wordpress不能更改邮箱
  • 上饶市网站建设wordpress英文版安装
  • 企业网站如何宣传百度推广托管公司
  • 广州比较好的网站建设企业wordpress 怎么学
  • wordpress安装主题需要ftp郑州百度网站优化
  • 网站建设月总结宜昌小程序开发公司
  • 个人网站制作价格表郑州那家做网站便宜
  • 大龄工找工作哪个网站好企业网站建设都能做哪些工作
  • 做微网站要多少钱爱链接外链购买
  • 电商网站设计公司皆选亿企邦促销方法100种
  • 杭州网站建设商业wordpress出站链接