大型c++项目在linux下如何调试?

大型c++项目在linux下如何调试?


在开始前我有一些资料,是我根据网友给的问题精心整理了一份「Linux 的资料从专业入门到高级教程」,

点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!

首先要分客户端还是服务端,或者说程序运行在本地还是在服务器上。

本地运行的程序,如果项目本身是在IDE里开发的,那自然可以用IDE调试。Linux桌面环境里也有各种图形界面IDE,和Windows上的Visual Studio, macOS上的Xcode一样方便。

如果不是用IDE开发的程序,比如Chromium, 可以接入(attach) gdb/lldb. 值得一提的是gdb其实是有一个TUI的,虽然比较丑,但也勉强能用。

如果是在服务器上运行的程序,那么SSH连上去用gdb/lldb, 方法是差不多的。另外,VS Code的远程开发插件也支持调试的,配置妥当的话效果不错。

其次要分调试业务逻辑还是调试系统层面的问题。

业务逻辑是指程序本身的算法和数据,如果问题不复杂的话,其实二分法print还是挺好用的。唯一的缺点是如果文件比较大,编译会很费时间。

系统层面的问题那就要55e1a258ba500a0c627d957a0f1533ed.jpeg用这张图里的工具了,细节不展开讲,每个工具都有特定的适用场景。

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

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

相关文章

Qt+Opencv实现视频二维码检测

编译器:Qt 5.12.2Visual Studio 2015 视觉库:OpenCV 4.5.5 能够加载MP4格式视频、读取、定位二维码并输出与反馈信息的软件 需要演示Demo可私信

Sui RFP两个提案正在悬赏Grant,4月1日截止速来申请

项目1:智能合约模板市场 概述 创建一个供开发人员购买或提供智能合约模板的市场。针对这样一个特定用户群体,制定支持所需动态的激励机制至关重要。 问题描述 随着众多区块链使用EVM,这些生态中的开发人员受益于各种应用程序和智能合约示…

【手游联运平台搭建】游戏平台的作用

随着科技的不断发展,游戏行业也在不断壮大,而游戏平台作为连接玩家与游戏的桥梁,发挥着越来越重要的作用。游戏平台不仅为玩家提供了便捷的游戏体验,还为游戏开发者提供了广阔的市场和推广渠道。本文将从多个方面探讨游戏平台的作…

【学习心得】websocket协议简介并与http协议对比

一、轮询和长轮询 在websocket协议出现之前,要想实现服务器和客户端的双向持久通信采取的是Ajax轮询。它的原理是每隔一段时间客户端就给服务器发送请求找服务器要数据。 让我们通过一个生活化的比喻来解释轮询和长轮询假设你正在与一位不怎么主动说话的老大爷&…

Matter环境下GD32编译环境的搭建

1、Matter介绍 Matter由CSA(连接标准联盟)发起,由巨头公司联合推出,旨在解决通信协议纷繁复杂的碎片化问题,打破多生态系统间的监护壁垒,实现智能设备的无缝通信与写作。 Matter开发环境安装 2、环境配置…

GitHub Desktop的常用操作【图形化】

文章目录 【1】仓库的创建和删除【2】文件操作【3】分支原理与分支操作1.分支创建2.分支合并 【4】标签 【1】仓库的创建和删除 在本地创建一个新的仓库: 然后输入仓库的名称,描述,并选择路径: 点击完后就发现我们的仓库创建好…

SD-WAN专线对本地网络有哪些要求?

SD-WAN(软件定义广域网)是一种新型的网络架构,通过软件定义的方式,将网络控制平面和数据转发平面进行分离,从而实现网络的灵活性、可编程性和自动化管理。在部署SD-WAN专线时,本地网络需要满足一些要求&…

HTTP代理ip如何助旅游大数据领域?怎么去建立安全代理隧道连接?

HTTP代理IP在旅游大数据领域的应用主要体现在以下几个方面: 数据抓取:旅游大数据的获取往往需要从各种在线旅游平台、社交媒体、评论网站等抓取数据。使用HTTP代理IP可以在抓取过程中隐藏真实IP,避免被目标网站封锁,从而持续、稳定…

windows无界鼠标,多机共享一套键鼠

原因 当前使用一台笔记本和一个台式机。用起来很麻烦。想要找到共享键鼠的方案。找到了无界鼠标这个软件。 安装 在两台电脑上都安装powertoy应用。 https://github.com/microsoft/PowerToys csdn下载 安装完成后找到无界鼠标打开 配置 多台电脑配置相同的key,刷新识别设…

强化学习中动作价值函数和状态价值函数的联系区别?

在强化学习中,动作价值函数(Q函数)和状态价值函数(V函数)都是值函数,用于评估在不同状态或状态动作对下的值。它们之间存在联系,但有一些区别: 动作价值函数(Q函数&#…

力扣写法题:最后一个单词的长度

如果最后一个单词后有空格可以采用以下的写 int lengthOfLastWord(char* s) {int count0,flag0;int i(strlen(s)-1);while(i>0){if(s[i]! ) flag1;if(flag1) {if(s[i] ) break;else count;}i--;}return count; }

玩转安卓之配置gradle-8.2.1

概述:看了一下,由于gradle是国外的,所以下载速度很慢,这个老师又是很菜的类型,同学又不会,于是曹某就写这一篇文章,教大家学会简单的为安卓配置gradle-8.2.1。 第一步:下载gradle-8…