网站建设知名网站信息抽查评估 短信

web/2025/10/8 4:28:31/文章来源:
网站建设知名,网站信息抽查评估 短信,关于网站可信备案,网站开发公司内部数据字典上一篇文章我们学习了如何使用GDB进行软件断点调试和硬件断点调试#xff1a;【软件开发底层知识修炼】十五 快速学习GDB调试二 使用GDB进行断点调试本篇文章继续上一篇文章的学习#xff0c;如何使用GDB的数据断点监测内存中的变量是否被改变 文章目录1 GDB的数据断点1.1 利… 上一篇文章我们学习了如何使用GDB进行软件断点调试和硬件断点调试【软件开发底层知识修炼】十五 快速学习GDB调试二 使用GDB进行断点调试本篇文章继续上一篇文章的学习如何使用GDB的数据断点监测内存中的变量是否被改变 文章目录1 GDB的数据断点1.1 利用查看内存的x命令进行系统大小端的判断2 使用GDB进行监视变量的改变与查看内存实际代码案例分析3 总结 1 GDB的数据断点 先来了解一下什么是GDB中的数据断点 在GDB中设置数据断点用于监测一个内存中的变量在程序运行的时候如果该变量被改变则程序就会被GDB终止执行并显示变量被改变的地方。数据断点的本质是硬件断点在GDB中使用watch命令来设置数据断点watch命令的用法为watch var_name 可以使用watch进行设置数据断点我们还可以查看程序运行中的所有内存中的数据。 命令语法为 x /Nuf address 其中/Nuf中的N、u、f三个位置的含义是 N - 需要打印的单元数u - 每个单元的大小比如字节字双字等f - 数据打印的格式 如八进制十六进制等 如下图示例是显示4个单元每个单元为1字节以十六进制数显示 x 命令中参数u对应的几种单位 打印格式对应的几种选项 1.1 利用查看内存的x命令进行系统大小端的判断 学会了x命令的用法可以按如下图的方式判断系统大小端 2 使用GDB进行监视变量的改变与查看内存实际代码案例分析 watch.c程序 #include stdio.h #include pthread.h #include unistd.hint g_var 0;void* thread_func(void* args) {sleep(5);g_var 1; }int main() {int i 0;pthread_t tid 0;pthread_create(tid, NULL, thread_func, NULL);for(i0; i10; i){printf(g_var %d\n, g_var);sleep(1);} } 上面的程序非常的简单就是在main函数中创建一个线程thread_func,然后在thread_func函数中改变一个全局变量 首先我们先编译运行上述程序 gcc -g -lpthread watch.c -o test.out 运行结果如下动态图 我们可以看出我们程序跑着跑着g_var变量就变了。假设这个变量我们不想让它改变但是有时候你调用了其他人写的接口函数很有可能就把我们不想改变的变量改变了所以这个时候需要找到变量在什么时候被改变以及在哪里被改变。 上述是一个小程序所以我们很容易知道是在thread_func函数中改变的g_var变量而且也能够知道在什么时候变量被改变。但是如果在一个大型程序中就很难查找。 此时GDB的数据断点就派上用场了。 我们可以使用GDB对变量g_var进行数据断点的设置当g_var发生变化时程序就会自动停止运行此时我们就可以知道程序运行到哪里了。 首先依次输入以下命令 gdb tset.outstart 进入到GDB调试模式并启动程序后再程序入口处停止。 然后使用watch命令对g_var变量设置数据断点 watch g_var 并使用info breakpoints 查看断点是否设置成功 上述步骤如下图所示 打好数据断点后让程序执行输入continue命令即可显示如下动态图所示 上述动态图中运行着运行着就停止了停止后显示如下 从上述图中我们可以知道在watch.c程序的thread_func函数中的12行导致了g_var的改变是从Old value0改变到New value1的。我们很容易就找到了发生改变的地方如果在大型程序中这是很快。 当然我们还可以使用上面学习的 x 命令来查看g_var所在内存的内容。首先我们需要查看g_var变量的的内存地址 print /a g_var 输入这条命令显示如下 得到g_var的地址后使用 x 命令查看它的内存查看方式是4单元1字节16进制方式如下图 很明显我们显示了g_var内存地址的连续4字节的内容。 到此我们已经通过这个简单的示例学会了如何检测程序运行过程中的内存变化。例子随简单但是也能够提现内存监测的重要性。 3 总结 本文学会使用GDB 进行内存监测学会如何使用GDB数据断点调试程序 本文章参考狄泰软件学院相关课程 想学习的可以加狄泰软件学院群 群聊号码199546072 学习探讨加个人可以免费帮忙下载CSDN资源 qq1126137994 微信liu1126137994 学习交流资源分享qq群962535112

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

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

相关文章

邵阳网站建设优化做网站建设的技巧

项目介绍 libcurl是一个跨平台的网络协议库,支持http、https、ftp等多种协议。 项目地址 https://github.com/curl/curl/releases 影响版本 7.69.0-8.3.0 漏洞分析 漏洞成因在于使用SOCKS5代理过程中造成的溢出。当Curl程序使用 SOCKS5代理时,设置…

作风建设 宣讲家网站万户网络技术有限公司官网

使用Python Django框架制作一个音乐网站, 本篇主要是后台对歌曲类型、歌单功能原有功能进行部分功能实现和显示优化。 目录 歌曲类型功能优化 新增编辑 优化输入项标题显示 父类型显示改为下拉菜单 列表显示 父类型显示名称 过滤器增加父类型 歌单表功能优化…

电子商务网站建设专业主修课程国外h5分享网站

文章目录 前言一、geometry是什么?二、geometry常用函数1.OGC标准函数①管理函数②几何对象关系函数③几何对象处理函数④几何对象存取函数⑤几何对象构造函数 2.PostGIS扩展函数①管理函数②几何操作符③几何量测函数④几何对象输出⑤几何对象创建⑥几何对象编辑⑦…

解决国外网站很慢工业产品设计用什么软件

驱动主要包含两部分,平台驱动和器件驱动。平台驱动主要包括通常在SOC内的GPIO、I2C、SPI等;器件驱动则主要包含通常在SOC外的器件,如 LCD、TP、WLAN等 图1 OpenHarmony 驱动分类 HDF驱动被设计为可以跨OS使用的驱动程序,HDF驱动框…

下载免费网站模板下载安装网站登录界面html

该漏洞因为用户提交表单数据并且验证失败时,后端会将用户之前提交的参数值使用 OGNL 表达式 %{value} 进行解析,然后重新填充到对应的表单数据中。例如注册或登录页面,提交失败后端一般会默认返回之前提交的数据,由于后端使用 %{v…

用记事本做网站纯静态网站开发

连通块记忆性递归的综合运用 这里x,y的设置反我平常的习惯,搞得我有点晕 实际上可以一输入就交换x,y的数据的 如果设置y1为全局变量的话会warning: warning: built-in function y1 declared as non-function 所以我改成p和q了…

茶叶企业网站源码wordpress改了固定链接出现404

jca使用Java密码体系结构(JCA)是一个可扩展的框架,使您能够使用执行加密操作。 JCA还促进实现独立性(程序不应该在乎谁提供加密服务)和实现互操作性(程序不应该与特定加密服务的特定提供者联系在一起&#…

贵州移动端网站建设深圳模板建站多少钱

#!/usr/bin/env python # -*- coding:utf-8 -*- # author:love_cat import cv2 # 接收两个参数,一个是文件名,一个值,如果值为1,接收的是彩色图片,如果值为零,接受的是灰度图片。会有一个返回值&#xff0c…

杭州做网站博客企业所得税优惠政策最新2023规定公告

哈希和unordered系列封装 一、哈希1. 概念2. 哈希函数,哈希碰撞哈希函数(常用的两个)哈希冲突(碰撞)小结 3. 解决哈希碰撞闭散列线性探测二次探测代码实现载荷因子(扩容) 开散列哈希桶代码实现扩…

金融投资网站wordpress 显示指定分类

转自:https://blog.csdn.net/qq_37788067/article/details/79250623概念:集群是个物理形态,分布式是个工作方式。1.分布式:一个业务分拆多个子业务,部署在不同的服务器上2.集群:同一个业务,部署在多个服务器…

温州高端企业网站建设营商环境建设监督局网站

参考引用 C11 14 17 20 多线程从原理到线程池实战代码运行环境:Visual Studio 2019 C多线程学习(一):C11 多线程快速入门 C多线程学习(二):多线程通信和锁 C多线程学习(三&#xff0…

北京个人制作网站有哪些内容网站管理工作是具体应该怎么做

文章目录 普通装饰器decorator0. 万能公式,非常重要1. 便于入门的decorator原理2. 理解函数3. 装饰器的作用:4. 装饰器的语法糖5. 装饰器顺序6. 极简的装饰器7. 装饰器的参数无参 函数装饰器有参 函数装饰器 类装饰器class decorator0. 万能公式,非常重要…

上海网站设计见建设怎样重新安装电脑wordpress

原文链接:赵侠客 前言 枚举类型在开发中是很常见的,有非常多的应用场景,如状态管理、类型分类、权限控制、配置管理、错误码管理、日志级别等。正确合理的使用枚举可以给我们带来非常多的好处: 增强代码可读性:枚举可…

定制企业网站建设制作域名网站怎么打开

1) 新建源文件 打开 CodeBlocks ,在上方菜单栏中选择 “文件 --> 新建 --> 空白文件”,如下图所示: 或者直接按下 Ctrl Shift N 组合键,都会新建一个空白的源文件,如下图所示: 在空白源文件中输入…

柯桥做网站哪家好济南软件开发公司

本文聊一个程序员都会关注的问题:性能。 当大家谈到“性能”时,你首先想到的会是什么? 是每次请求需要多长时间才能返回? 是每秒钟能够处理多少次请求? 还是程序的CPU和内存使用率高不高? 这些问题基本上…

建筑业资质查询网站工信部网站备案用户名

目录 4.通过继承实现员工工资核算打印功能 6.父类和子类中通过this和super都可以调用哪些属性和方法 8.扩展如下的BankAccount类 10.判断测试类中创建的两个对象是否相等 11.向上转型&向下转型 12.equals和的区别 15.什么是多态,多态具体体现有哪些? 16. java的动…

昌平建设网站网站开发选定制还是模板

在C中,->是一个运算符,称为成员访问运算符(Member Access Operator)。它用于通过指针访问对象的成员(变量或函数)。 下面是对->运算符的详细解释: 语法: pointer->member …

有没有做校园文化的网站百度做app的网站

展开全部JAVA环境变量设置一、下载JDK。62616964757a686964616fe4b893e5b19e31333363376561下载后是一个可执行程序,双击安装,安装路径为C:\Program Files\Java\jdk1.6.0_22\(当然,其他路径也可以),如下图:二、设置环境…

网站建设都有那些费用做网站公司有哪些

选择题 题目:电路如图所示,Ua( )V,Ub( )V 题目:实际电流源开路时,该电流源内部 题目:电压和电流的参考方向关联的含义是 题目:用万用表测量电阻时…