[C++] GDB的调试和自动化检测

文章目录

  • GDB基本使用
    • 1. bazel的debug过程
    • 2. line-tables-only的使用
  • Reference

GDB基本使用

参考文档: https://zhuanlan.zhihu.com/p/655719314

1. bazel的debug过程

  • 需要带--copt=-g --copt=-ggdb选项进行编译
// bazel build  --strip=never --copt=-g --copt=-ggdb  //path/to/package/...
// break source.cc:78 : 表示在source.cc 78 line打断点
// p/print 一般只能打印C++中变量信息,而不能打印自定义的一些表达式,和python不太一样// 一些命令说明:
//  watch + 表达式: 通过设置好查看的表达式,则可以使程序在表达式成立时终止运行; 比如观察某个循环iteration时有用
// breaktrace/bt: 该命令打印当前停住地方函数调用栈的所有信息,如果crash,则用bt能很好确定那个地方错误。 
/ bt n/-n: 表示打印栈顶或者栈底n层信息
// info  f   则可以显示出更为详尽的当前栈层的信息
// info  args  显示当前函数的参数名和值
// 用list打印当前程序执行的源码。 需要在编译时加 -g.

2. line-tables-only的使用

  • This full debug info allows for a good debugging experience, with the ability to view function names, local variables, step through code, etc. However, it produces large executable/binary sizes. The line-tables-only optimization strips away all debug info except the line number tables. This means the executables retain the ability to step through code line by line in the debugger, but lose information like local variable names, function parameters, etc.
# cmake
set(CMAKE_CXX_FLAGS_DEBUG "$<$<CONFIG:DEBUG>:-gline-tables-only>")
# bazel 不知道怎么设置,只知道调用dbg这样写
config_setting(name = "x86_debug_build",values = {"cpu": "x86","compilation_mode": "gdb",},
)

相关文章:https://editor.csdn.net/md/?articleId=143571523

Reference

  • bazel的使用

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

urllib3.exceptions.Proxyschemeunknown: Proxy URL had no scheme

这个错误信息 urllib3.exceptions.Proxyschemeunknown: Proxy URL had no scheme, should start with http:// or https:// 表示你在使用 urllib3 库设置代理时&#xff0c;提供的代理 URL 没有包含正确的协议方案&#xff08;scheme&#xff09;。在 URL 中&#xff0c;方案部…

Javaweb选课系统-开源计划-起源-001-完全免费开源

项目部署&#xff0c;效果视频 https://www.bilibili.com/video/BV1LMDUY8Ef7/?spm_id_from333.880.my_history.page.click&vd_source17d16b2e328f19328e077e9cb07565ef项目地址&#xff1a; https://gitee.com/lucky-six/Javaweb-xuanke

微服务架构面试内容整理-微服务与传统单体架构的区别

微服务和传统单体架构的主要区别在于架构设计和服务管理方式: 1. 架构设计: ● 单体架构:整个应用作为一个整体构建,所有功能模块紧密耦合在一起,通常在一个代码库中管理。 ● 微服务架构:应用被拆分为多个独立的服务,每个服务专注于特定的业务功能,可以独立开发和部署…

【简信CRM-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

SAP 学习文章

SAP PP模块后台表关系图_sap常用表及关系图-CSDN博客 SAP_PP模块流程_sap中pp模组指令-CSDN博客

Linux云计算 |【第五阶段】PROJECT3-DAY1

主要内容&#xff1a; 跳板机&#xff08;堡垒机&#xff09;的概念、部署JumpeServer 一、跳板机&#xff08;堡垒机&#xff09;的概念 跳板机&#xff08;Jump Server 或 Bastion Host&#xff09;是一种网络安全设备或服务器&#xff0c;也称堡垒机&#xff0c;是一类可作…

宠物空气净化器哪个牌子好?希喂、352两款产品吸力、噪音真实测试

我身为养宠博主&#xff0c;这些年用过不少宠物空气净化器&#xff0c;花费了1w&#xff0c;对很多产品都进行过测评。正值双十一&#xff0c;很多朋友都在问我宠物空气净化器到底有没有必要买&#xff1f;答案毫无疑问是有必要&#xff01; 相比较于其他清理工具&#xff0c;…

Clang-Tidy 是什么?如何让你的代码更干净无瑕

Clang-Tidy&#xff1a;让你的代码更干净&#xff0c;让潜在问题无处遁形 在现代软件开发中&#xff0c;代码质量不再仅仅体现在功能实现上&#xff0c;还包括其可维护性、可读性和潜在问题的检测。clang-tidy 是一款功能强大的静态分析工具&#xff0c;专为 C/C 代码而生&…

Identity (Intentional Equality) vs. Equivalence (Extensional Equality)

在《何谓相等》一文中&#xff0c;已对在类型论中的相等概念进行了描述&#xff0c;即如两对象是同样地构建出来的&#xff0c;那么两对象相等&#xff08;Equals&#xff09;。如果两对象不相同&#xff0c;但经过简化转换后&#xff0c;形成相等的对象&#xff0c;那么&#…

微服务中常用分布式锁原理及执行流程

1.什么是分布式锁 分布式锁是一种在分布式系统环境下实现的锁机制&#xff0c;它主要用于解决&#xff0c;多个分布式节点之间对共享资源的互斥访问问题&#xff0c;确保在分布式系统中&#xff0c;即使存在有多个不同节点上的进程或线程&#xff0c;同一时刻也只有一个节点可…

【算法】(Python)动态规划

动态规划&#xff1a; dynamic programming。"programming"指的是一种表格法&#xff0c;而非编写计算机程序。通常解决最优化问题&#xff08;optimization problem&#xff09;。将问题拆分成若干个子问题&#xff0c;求解各子问题来得到原问题的解。适用于多阶段…

PySpark本地开发环境搭建

一.前置事项 请注意&#xff0c;需要先实现Windows的本地JDK和Hadoop的安装。 二.windows安装Anaconda 资源&#xff1a;Miniconda3-py38-4.11.0-Windows-x86-64&#xff0c;在window使用的Anaconda资源-CSDN文库 右键以管理员身份运行&#xff0c;选择你的安装路径&#x…

深度学习经典模型之ZFNet

1 ZFNet 1.1 模型介绍 ​ ZFNet是由 M a t t h e w Matthew Matthew D . Z e i l e r D. Zeiler D.Zeiler和 R o b Rob Rob F e r g u s Fergus Fergus在AlexNet基础上提出的大型卷积网络&#xff0c;在2013年ILSVRC图像分类竞赛中以11.19%的错误率获得冠军&#xff08;实际…

LLMs之Calculate:利用大语言模型技术基于文本内容实现数字计算能力的简介、常用方法、代码实现之详细攻略

LLMs之Calculate:利用大语言模型技术基于文本内容实现数字计算能力的简介、常用方法、代码实现之详细攻略 导读:在基于大语言模型(LLM)技术实现数字计算能力的背景下,文本内容的理解和计算过程涉及多个领域的交叉技术,包括自然语言处理(NLP)、机器学习、以及数值计算。…

2024网盘搜索引擎合集推荐:高效搜索资源的利器

2024网盘搜索引擎合集推荐&#xff1a;高效搜索资源的利器 在这个信息爆炸的时代&#xff0c;找到合适的资源变得越来越重要。以下是一些网盘搜索引擎的推荐&#xff0c;它们可以帮助您快速找到所需的文件和资料。 咔帕搜索&#xff1a;简单高效的云盘搜索 网址&#xff1a;…

duxapp放弃了redux,在duxapp状态实现方案

全局状态 全局状态是一个很实用的功能&#xff0c;例如管理用户信息&#xff0c;组件间状态共享等功能都需要用到全局状态&#xff0c;react有很多成熟的全局状态管理工具&#xff0c;但是很多写起来太过麻烦&#xff0c;duxapp提供了几种应对不同场景的全局状态的方案&#xf…

最新榜单!国内免费好用的OA协同软件前十名

在现代企业管理中&#xff0c;OA&#xff08;Office Automation&#xff09;协同软件已成为提升工作效率、简化沟通流程的重要工具。OA协同软件的主要功能涵盖任务管理、文件共享、审批流程、日程安排等&#xff0c;从而帮助企业更高效地进行跨部门协作、信息传递和项目跟踪。在…

重塑消费观:破解生活需求与发展不平衡的密钥

在当前中国社会&#xff0c;人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾已成为主要挑战。这一矛盾的产生&#xff0c;源于中国特色社会主义进入新时代后&#xff0c;社会生产力水平的显著提升以及人民生活需求的深刻变化。 在追求经济持续发展的同时&#xff0c…

【计算机网络】TCP协议面试常考(一)

三次握手和四次挥手是TCP协议中非常重要的机制&#xff0c;它们在多种情况下确保了网络通信的可靠性和安全性。以下是这些机制发挥作用的一些关键场景&#xff1a; 三次握手的必要性&#xff1a; 同步序列号&#xff1a; 三次握手确保了双方的初始序列号&#xff08;ISN&#…

Java自动点名器实现案例详解

Java自动点名器实现案例详解 在教学管理中&#xff0c;点名是一项重要的任务。随着技术的发展&#xff0c;使用编程语言实现自动化的点名器不仅可以提高效率&#xff0c;还能增加课堂的互动性和趣味性。本文将详细介绍三个案例&#xff0c;分别是简单随机点名器、带有权重的随…