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

【linux学习】linux工具篇(下)

Linux调试器-gdb使用Linux项目自动化构建工具-make/Makefile我是程序员小青蛙下面分享linux的工具利用前言程序的发布方式有两种debug模式和release模式Linux gcc/g出来的二进制程序默认是release模式要使用gdb调试必须在源代码生成二进制程序的时候,加上-g选项一、基本命令gdb binFile退出ctrl d或quit调试命令listl行号显示binFile源代码接着上次的位置往下列每次列10行。listl函数名列出某个函数的源代码。r或run运行程序。n或next单条执行。s或step进入函数调用break(b)行号在某一行设置断点break函数名在某个函数开头设置断点info break查看断点信息。finish执行到当前函数返回然后挺下来等待命令print(p)打印表达式的值通过表达式可以修改变量的值或者调用函数p变量打印变量值。set var修改变量的值continue(或c)从当前位置开始连续而非单步执行程序run(或r)从开始连续而非单步执行程序delete breakpoints删除所有断点delete breakpoints n删除序号为n的断点disable breakpoints禁用断点enable breakpoints启用断点info(或i) breakpoints参看当前设置了哪些断点display变量名跟踪查看一个变量每次停下来都显示它的值undisplay取消对先前设置的那些变量的跟踪until X行号跳至X行breaktrace(或bt)查看各级函数调用及参数infoi) locals查看当前栈帧局部变量的值quit退出gdb1。生成可调试文件gcc test.c -o test -g2.安装gdb3.进入调试命令使用l -查看内容break(b) -打断点info break -查看断点运行会有调用次数显示禁用第一个断点再次运行发现没有调用enable break -启用断点delete breakpoints删除所有断点delete breakpoints n删除序号为n的断点基本功能看上面就行不演示了二、Linux项目自动化构建工具-make/Makefile会不会写makefile从一个侧面说明了一个人是否具备完成大型工程的能力一个工程中的源文件不计数其按类型、功能、模块分别放在若干个目录中makefile定义了一系列的规则来指定哪些文件需要先编译哪些文件需要后编译哪些文件需要重新编译甚至于进行更复杂的功能操作makefile带来的好处就是——“自动化编译”一旦写好只需要一个make命令整个工程完全自动编译极大的提高了软件开发的效率。make是一个命令工具是一个解释makefile中指令的命令工具一般来说大多数的IDE都有这个命令比如Delphi的makeVisual C的nmakeLinux下GNU的make。可见makefile都成为了一种在工程方面的编译方法。make是一条命令makefile是一个文件两个搭配使用完成项目自动化构建。原理make是如何工作的,在默认的方式下也就是我们只输入make命令。那么1. make会在当前目录下找名字叫“Makefile”或“makefile”的文件。2.如果找到它会找文件中的第一个目标文件target在上面的例子中他会找到“hello”这个文件并把这个文件作为最终的目标文件。3.如果hello文件不存在或是hello所依赖的后面的hello.o文件的文件修改时间要比hello这个文件新可以用touch测试那么他就会执行后面所定义的命令来生成hello这个文件。4.如果hello所依赖的hello.o文件不存在那么make会在当前文件中找目标为hello.o文件的依赖性如果找到则再根据那一个规则生成hello.o文件。这有点像一个堆栈的过程5.当然你的C文件和H文件是存在的啦于是make会生成hello.o文件然后再用hello.o文件声明make的终极任务也就是执行文件hello了。6.这就是整个make的依赖性make会一层又一层地去找文件的依赖关系直到最终编译出第一个目标文件。7.在找寻的过程中如果出现错误比如最后被依赖的文件找不到那么make就会直接退出并报错而对于所定义的命令的错误或是编译不成功make根本不理。8. make只管文件的依赖性即如果在我找了依赖关系之后冒号后面的文件还是不在那么对不起我就不工作啦。项目清理工程是需要被清理的像clean这种没有被第一个目标文件直接或间接关联那么它后面所定义的命令将不会被自动执行不过我们可以显示要make执行。即命令——“make clean”以此来清除所有的目标文件以便重编译。但是一般我们这种clean的目标文件我们将它设置为伪目标,用.PHONY修饰,伪目标的特性是总是被执行的。在Makeflie文件中编写功能形成依赖关系我们也可以分步进行对gcc的编译依赖关系上面的文件hello,它依赖hell.ohello.o,它依赖hello.shello.s,它依赖hello.ihello.i,它依赖hello.c依赖方法gcc hello.*-option hello.*,就是与之对应的依赖关系自动寻找这样可以基本实现项目编译全部总结调试gdb的基本命令和构建自动化工具的基本认识谢谢观看。

相关文章:

【linux学习】linux工具篇(下)

Linux调试器-gdb使用,Linux项目自动化构建工具-make/Makefile我是程序员小青蛙,下面分享linux的工具利用前言程序的发布方式有两种,debug模式和release模式 Linux gcc/g出来的二进制程序,默认是release模式 要使用gdb调试&#xf…...

Pandas 数据处理进阶:缺失值、合并、分组聚合与透视表

Pandas 数据处理进阶:缺失值、合并、分组聚合与透视表 在完成 pandas 的基础操作(索引、筛选、赋值、函数应用)之后,下一步便是处理真实数据中常见的问题:缺失值、多表合并、分组统计以及数据透视。本文带你系统掌握这…...

Taotoken的TokenPlan套餐如何为个人开发者节省成本

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken的TokenPlan套餐如何为个人开发者节省成本 对于个人开发者或小型工作室而言,在项目开发中集成大模型API是提升…...

源代码论文分享|基于 Spring Boot 的校园商铺管理系统!

很多同学选毕业设计时都会纠结:题目太简单,怕老师觉得没含金量;题目太复杂,又怕自己做不完。 其实像校园商铺管理系统这种项目,就挺适合拿来做毕设或课程设计。它有真实场景,功能也能展开,技术…...

DeepSeek LeetCode 2488. 统计中位数为 K 的子数组 public int countSubarrays(int[] nums, int k)

这道题要求统计所有子数组中,中位数等于 k 的子数组个数。 核心思路: 先找到 k 在数组中的位置 pos中位数定义(对于奇数长度):排序后中间的数 k等价转换:对于子数组,比 k 小的数个数 比 k 大的…...

源代码论文分享|社区养老服务平台的设计与实现!

有些毕业设计题目,听起来不是特别“炫”,但真的很适合做,也很容易写出实际意义。 比如这次分享的这个项目:社区养老服务平台的设计与实现。 现在社区养老、居家养老、智慧养老这些方向本身就很有现实背景,老师看到这…...

曝GPT-5.5用上“全球最快芯片”,Claude慌了

120B模型飙到2000 token/秒,CFO更放话已在跑GPT-5.5!Cerebras 560亿美元IPO首日暴涨68%,但SemiAnalysis万字拆解直指死穴。 SemiAnalysis,硅谷最硬核的芯片分析机构,4月份光是AI工具的订阅费就烧到了年化1000万美元。…...

3分钟告别Windows桌面混乱:这款免费工具让你的图标瞬间变整齐

3分钟告别Windows桌面混乱:这款免费工具让你的图标瞬间变整齐 【免费下载链接】NoFences 🚧 Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences 还在为Windows桌面上那些杂乱无章的图标头疼吗&…...

商业空间吸音地毯怎么选?16 年品牌雅尔居靠谱

商业空间装修,噪音控制是刚需。办公室人声嘈杂、酒店走廊脚步声扰客、工装大堂回音重,都会直接影响空间体验与使用效率。选对吸音地毯,既能高效降噪,又能提升空间质感,是商业空间地面材料的优选。今天就来聊聊吸音地毯…...

为AI智能体项目选择与接入高性价比大模型API服务

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为AI智能体项目选择与接入高性价比大模型API服务 在构建AI智能体或自动化工作流时,开发者面临的核心挑战往往集中在两个…...

进程管理器大横评:从 PM2 到 Systemd 的选型与实战

一、为什么需要进程管理器? 在服务器运维的世界里,“进程管理器”(Process Manager)是一个看似基础却极其关键的角色。它的核心使命可以概括为:确保你的应用程序在服务器重启、进程崩溃、资源耗尽等意外情况下&#xf…...

实测:JD匹配度从50%到90%,面试邀约直接翻倍,我才发现简历写错了10年!

“简历投出去就石沉大海,每天海投几十份,零回复。”“好不容易收到面试,结果聊了几句就没下文了,感觉岗位根本不适合我。”“JD看了又看,觉得自己的经验挺符合啊,为啥总是卡在第一关?”这些&…...

零经验想投运营?3分钟AI生成高匹配简历,告别海投无效!

“我一个零经验小白,简历怎么写才能打动运营岗HR啊?!!” “海投了快100份简历,一个面试都没有,我是不是不适合运营?” 相信这是大部分想转行或者刚毕业,对运营岗有点心动但完全没经…...

打卡信奥刷题(3292)用C++实现信奥题 P8976 「DTOI-4」排列

P8976 「DTOI-4」排列 题目背景 Update on 2023.2.1:新增一组针对 yuanjiabao 的 Hack 数据,放置于 #21。 Update on 2023.2.2:新增一组针对 CourtesyWei 和 bizhidaojiaosha 的 Hack 数据,放置于 #22。 构造一个排列 ppp&…...

转行简历不会衔接?AI一键生成,自然过渡无违和感,邀约率飙升3倍!

“我以前是做销售的,想转行产品经理,简历上怎么写才能不让HR觉得我风马牛不相及?” “干了几年运营,现在想尝试开发,简历里除了写熟悉Word、Excel,还能写啥?” “裸辞转行,简历一片…...

RK3588开发板Ubuntu系统深度解析:架构设计与性能优化指南

RK3588开发板Ubuntu系统深度解析:架构设计与性能优化指南 【免费下载链接】ubuntu-rockchip Ubuntu for Rockchip RK35XX Devices 项目地址: https://gitcode.com/gh_mirrors/ub/ubuntu-rockchip 在嵌入式开发领域,Rockchip RK3588处理器凭借其强…...

FlashAttention 深度解读:让大模型注意力机制“一口气算完“

FlashAttention:让大模型注意力机制"一口气算完" 想象你在厨房做菜。冰箱在远处(HBM,高带宽内存),料理台在面前(SRAM,片上缓存)。每次要切菜,都得走过去开冰箱…...

实战测试10款降AIGC软件:只选真正管用的那一款!

随着AI写作工具的普及,论文撰写和内容创作变得前所未有的高效,许多学生和职场人都从中受益。然而,随着AIGC检测技术的不断升级,越来越多的人开始面临新的挑战:原本流畅自然的AI生成内容,如今很容易被系统识…...

【期刊征稿 | 录用后最快当月见刊,刊后1个月检索,且检索稳定】第九届艺术、教育与管理国际学术会议(ICAEM 2026) - 第二期

录用后最快当月见刊,刊后1个月检索,且检索稳定 | 含ISSN号,DOI,封面目录 第九届艺术、教育与管理国际学术会议(ICAEM 2026) - 第二期 2026 9th International Conference on Arts, Education and Management 2026年…...

从入门到发烧:2026 Linux 必装 13 款播放器(VLC/MPV/Kodi 全覆盖)

Linux视频播放器选择多样,如榛名、MPlayer、VLC等,功能强大、支持多格式,满足各类用户需求 一、榛名视频播放器 榛名视频播放器是一款基于Qt的开源视频播放器,提供了许多基本功能。其特点包括支持Youtube-dl、控制播放速度、丰富…...

【案例共创】CodeArts+SKILL 双引擎:AI 驱动 WEB 服务器极速部署

本案例由开发者:JeffDing提供,华为开发者空间案例中心优化并收录。 最新案例动态,请查阅【案例共创】CodeArtsSKILL 双引擎:AI 驱动 WEB 服务器极速部署小伙伴们快来进行实操吧! 一、概述 1.1 案例介绍 华为云码道…...

如何在跨平台场景下实现高效远程桌面控制?BilldDesk Pro的现代化解决方案

如何在跨平台场景下实现高效远程桌面控制?BilldDesk Pro的现代化解决方案 【免费下载链接】billd-desk 基于Vue3 WebRTC Nodejs Flutter搭建的远程桌面控制、游戏串流 项目地址: https://gitcode.com/gh_mirrors/bi/billd-desk 在远程办公和技术支持日益普…...

3步搞定:m4s-converter让你的B站缓存视频重获新生

3步搞定:m4s-converter让你的B站缓存视频重获新生 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾经遇到过这样的困境&#…...

Flink 2.2集成Flink CDC 3.6

1 、部署Flink CDC tar -zxf flink-cdc-3.6.0-2.2-bin.tar.gz -C /usr/bigtop/3.3.0/usr/libln -s /usr/bigtop/3.3.0/usr/lib/flink-cdc-3.6...

三步解锁全网盘极速下载:免登录直链解析完整教程

三步解锁全网盘极速下载:免登录直链解析完整教程 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 …...

网盘直链解析工具:多平台文件下载的实用解决方案

网盘直链解析工具:多平台文件下载的实用解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 …...

GitHub资源精准下载:3分钟掌握DownGit的完整使用指南

GitHub资源精准下载:3分钟掌握DownGit的完整使用指南 【免费下载链接】DownGit github 资源打包下载工具 项目地址: https://gitcode.com/gh_mirrors/dow/DownGit 还在为下载GitHub上单个文件而烦恼吗?DownGit是你的终极解决方案!这个…...

技术人的收入结构优化:工资、副业、投资的三支柱模型

在软件测试的世界里,我们熟知一个真理:没有任何单一测试策略能保证系统的绝对健壮。一个高质量的系统,必然建立在单元测试、集成测试、系统测试和验收测试所构成的稳固金字塔上。同样的逻辑,也适用于我们技术人的财务健康。过度依…...

实力入选丨全知科技荣登嘶吼2026网络安全产业图谱

近日,嘶吼安全产业研究院正式发布《嘶吼2026网络安全产业图谱》。全知科技凭借在数据安全赛道的长期深耕积淀、持续技术创新能力与规模化行业落地实践,成功入选图谱数据安全核心板块,强势入围开发与应用安全、数据安全两大核心板块&#xff0…...

9大网盘直链解析:免费高效的完整下载解决方案

9大网盘直链解析:免费高效的完整下载解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 / 迅…...