如何防止网站被注册,html5网站开发案例视频,如何维护wordpress,国外服务器电商网站#x1f31f; 快来参与讨论#x1f4ac;#xff0c;点赞#x1f44d;、收藏⭐、分享#x1f4e4;#xff0c;共创活力社区。#x1f31f; #x1f6a9;用通俗易懂且不失专业性的文字#xff0c;讲解计算机领域那些看似枯燥的知识点#x1f6a9; 目录
前言
一… 快来参与讨论点赞、收藏⭐、分享共创活力社区。 用通俗易懂且不失专业性的文字讲解计算机领域那些看似枯燥的知识点 目录
前言
一、GDB 调试器程序的 “纠错神器”️
一GDB 操作指南
二、冯诺依曼体系结构计算机的 “底层蓝图”️
三、操作系统计算机的 “大管家”
一操作系统的使命
二操作系统的管理智慧
三系统调用与库函数开发的 “助力器”
结尾 前言 编程的道路上程序时不时就像调皮的小精灵♂️突然 “闹脾气”可把不少小伙伴愁坏啦。别担心只要掌握 Linux 调试器 GDB弄懂计算机底层架构与操作系统原理这些难题就能轻松化解。现在就让我们一起踏上探索这些实用知识的旅程吧 一、GDB 调试器程序的 “纠错神器”️ 程序发布通常有 debug 和 release 两种模式。 debug可以调试形成可执行程序的时候会有调试信息release不能调试 在 Linux 系统里gcc/g 编译生成的二进制程序默认是 release 模式这种模式下程序跑得飞快但要是出了问题排查起来就像在黑暗中摸索难上加难。
而如果想让 GDB 这位 “调试高手” 来帮忙在编译的时候就得加上 -g 选项这就好比给程序戴上了一副 “透视镜”让问题无处遁形。 因此要被gdb调试必须debug方式发布必须加 -g 一GDB 操作指南 启动与退出使用 “gdb binFile” 就能开启调试之旅啦要是想结束调试敲下 “ctrl d” 或者输入 “quit” 就可以和 GDB 说拜拜咯。查看代码“listl 行号” 可以接着上次的位置列出 10 行代码就像有个贴心小助手按你的要求翻代码页“listl 函数名” 则能直接列出特定函数的代码比如调试游戏程序时用它就能快速看到 “jump” 函数是怎么写的。运行程序“r 或 run” 一下程序就像听到发令枪响的运动员♂️“嗖” 地开始跑起来啦在赛车游戏里这就相当于赛车发车咯。单步执行“n 或 next” 就像给程序下了个 “慢动作” 指令让它一次只执行一条语句方便你一步一步揪出问题小尾巴。(逐语句)进入函数“s 或 step” 这个命令超厉害能像个小侦探一样带着你钻进函数内部看看里面到底在搞什么 “小动作”️♂️。逐过程设置断点“break (b) 行号” 可以在指定的行上设个 “关卡”程序跑到这就会停下来“break 函数名” 则是在函数开头设卡。要是你觉得 “加速” 函数有点可疑就在它开头设个断点呗。“info break” 能帮你查看都设了哪些断点要是设错了“delete breakpoints” 可以一键删除所有断点“delete breakpoints n” 能精准删除序号为 n 的那个断点。要是暂时不想让某个断点起作用“disable breakpoints” 把它 “关禁闭”后面想用了“enable breakpoints” 再放它 “出来工作”。操作变量“print (p) 变量” 或者 “p 变量” 都能打印出变量的值就像给变量来了个 “X 光透视”看看它里面装的啥“print (p)” 还能顺便修改变量或者调用函数厉害吧“set var” 则是直接给变量 “改头换面”让它按照你的新想法来。其他命令“finish” 能让程序把当前函数执行完然后像个听话的孩子一样停下来等你指示“continue (或 c)” 就像你对程序说 “继续跑吧”它就从当前位置接着跑起来啦“display 变量名” 可以像个小跟班一样一直盯着某个变量每次程序停下来都给你汇报变量的值要是不想让它跟了“undisplay” 让它 “退下”“until X 行号” 能让程序像会瞬移一样直接跳到指定的行“disable断点”可以暂时忽略这个断点而“enable断点”则恢复这个断点 “breaktrace (或 bt)” 能帮你画出程序的 “行动路线图”看看各级函数都被怎么调用的带了哪些参数“infoi) locals” 则是帮你查看当前这个 “小环境” 里局部变量的值。 总结表格 操作类型命令说明启动与退出gdb binFile ctrl d 或 quit开启调试 / 结束调试 查看代码listl 行号 listl 函数名按行号或函数名查看代码 运行程序r 或 run启动程序 ♂️单步执行n 或 next一次执行一条语句 进入函数s 或 step深入函数内部 ️♂️设置断点break (b) 行号 break 函数名 info break delete breakpoints delete breakpoints n disable breakpoints enable breakpoints设置断点 / 查看断点 / 删除所有断点 / 删除指定序号断点 / 禁用断点 / 启用断点 操作变量print (p) 变量 p 变量 set var打印变量值 / 打印变量值简版/ 修改变量值 其他finish continue (或 c) display 变量名 undisplay until X 行号 breaktrace (或 bt) infoi) locals执行完当前函数返回暂停 从当前位置继续运行 跟踪变量 取消跟踪变量 跳转到指定行 ⚡ 查看函数调用及参数 ️ 查看当前栈帧局部变量值 二、冯诺依曼体系结构计算机的 “底层蓝图”️ 先谈硬件再谈软件再谈进程
咱们平常使用的电脑像笔记本、服务器这些大多都是按照冯诺依曼体系结构来搭建的。这个结构就像是计算机的 “骨架”支撑着它的各种功能。它主要由下面三部分组成 输入单元像键盘、鼠标这些就像是计算机的 “耳朵” 和 “眼睛”负责把外界的信息传递给计算机让计算机知道你想干啥。中央处理器 (CPU)这可是计算机的 “超级大脑”运算器就像个超厉害的计算器能快速处理各种数据运算控制器则像个指挥官指挥着计算机各个部分有条不紊地工作。输出单元比如显示器、打印机它们就像计算机的 “嘴巴”把计算机处理好的结果展示给你看。 举个例子
这里要特别注意哦在冯诺依曼体系里存储器说的就是内存。CPU 就像个有点 “小傲娇” 的家伙只愿意和内存 “交流”外部设备要想和 CPU “说说话”都得通过内存这个 “中间人” 来传话。就拿 QQ 聊天来说吧你发消息的时候通过键盘输入输入单元消息就先跑到内存这个 “小驿站” 歇着然后 QQ 程序在 CPU 这个 “大指挥官” 的指挥下从内存里把消息拿出来处理处理完再放回内存接着通过网络输出相关功能发出去给对方。对方收到消息后也是先把消息放在内存 “驿站”再由显示器输出单元显示出来给对方看。要是发文件文件数据就像一大包行李也是先到内存 “驿站”再处理传输。
总结表格 组成部分功能举例输入单元为计算机输入信息 键盘、鼠标中央处理器 (CPU)运算器负责数据计算控制器指挥各部分工作 处理各种数据运算、控制程序流程输出单元展示计算机处理结果 显示器、打印机特殊说明CPU 仅与内存交互外设通过内存中转数据 QQ 聊天消息、文件传输 一个程序要运行必须要先加载到内存中运行为什么
为什么我们当时写的进度条默认显示的数据是可能会缓存起来在哪里缓存
因为冯诺依曼体系结构规定的硬件要求 三、操作系统计算机的 “大管家”
是什么 操作系统OS就像是计算机系统的 “大管家”把计算机的各种事务安排得明明白白。它主要包括内核和其他程序两部分。内核负责进程管理、内存管理、文件管理、驱动管理这些重要的事儿就像管家的几个得力助手各自把自己的活儿干得漂亮其他程序呢像函数库、shell 程序这些就像是管家的小工具帮我们更方便地使用计算机。
一操作系统的使命 管理资源和硬件打交道合理安排软硬件资源就像管家要把家里的东西都安排得井井有条让它们都能发挥自己的作用。提供环境给应用程序打造一个舒适、稳定的 “小窝”让它们能顺顺利利地运行就像音乐软件能在操作系统提供的环境里流畅播放音乐。 二操作系统的管理智慧 操作系统会用 struct 结构体来给硬件做个详细的 “档案”就像给每个硬件发了一张 “身份证”上面记录着各种信息。然后再用链表等数据结构把这些 “身份证” 整理好方便管理这样就能快速找到需要的硬件信息啦。
三系统调用与库函数开发的 “助力器”
为什么 从开发的角度看操作系统就像一个神秘的大宝藏它打开一些小窗口这些窗口就是系统调用开发者可以通过这些窗口和操作系统互动。不过系统调用的功能比较基础就好比给了你一些基础材料让你自己动手做东西对开发者要求有点高。这时候聪明的开发者就把这些基础材料加工了一下做成了库函数库函数就像已经组装好的高级工具用起来更方便让上层开发变得轻松不少。比如说盖房子的时候系统调用给你的是砖头、水泥这些基础材料库函数就像是已经做好的预制板直接用就行是不是方便多啦。
怎么做后文再讲解
总结表格 分类内容说明操作系统组成内核 其他程序管进程、内存等关键任务 如函数库、shell 程序辅助使用计算机 ️操作系统使命管理资源 提供环境与硬件交互管理资源 ️ 保障应用程序稳定运行 管理方式struct 结构体描述硬件 链表等组织硬件为硬件做 “身份证” 实现高效管理 开发相关系统调用 库函数基础功能对开发者要求高 封装系统调用方便上层开发 结尾 好啦小伙伴们今天咱们一起探索了 GDB 调试、冯诺依曼体系和操作系统的奇妙世界。
希望这些知识能成为你们编程路上的 “秘密武器”以后遇到问题再也不怕不怕啦祝愿大家在编程的海洋里乘风破浪编写出超酷炫的程序哦 如果在学习过程中有任何疑问或建议欢迎随时交流分享哦 【A Charmer】