社区
C语言
帖子详情
当一个全局变量值被改写时,如何跟踪?
weitao999
2010-12-24 01:28:15
记录日志或者主动产生core文件。
...全文
578
17
打赏
收藏
当一个全局变量值被改写时,如何跟踪?
记录日志或者主动产生core文件。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weitao999
2010-12-25
打赏
举报
回复
已通过mprotect解决,但总是复现不了,有没有很好的内存越界检查工具呢,C语言代码。
dukong123
2010-12-25
打赏
举报
回复
输出日志。。。。。。。。。。。
T0Ols
2010-12-25
打赏
举报
回复
调试真的很难
luciferisnotsatan
2010-12-24
打赏
举报
回复
调试的话,可以设内存断点
Jim_King_2000
2010-12-24
打赏
举报
回复
Windows下可以使用内存断点。
libinfei8848
2010-12-24
打赏
举报
回复
[Quote=引用 5 楼 memoleak 的回复:]
使用观察点。。。
现在多数CPU都能支持数据断点功能。
在数据断点使能时,
当CPU访问该地址时,CPU会陷入异常。在异常处理程序里面可以处理之。。。
参见GDB使用手册
[/Quote]
支持,windows下将变量放在保护属性的内存地址,使用seh捕捉修改写异常,在异常中通知
xx说就叫这个名字
2010-12-24
打赏
举报
回复
记得gdb调试中可以加条件实现断点!
break if ...(这里可以写全局变量不等于原有值)
这样当全局变量被改变是就断点。。
hl0702xin
2010-12-24
打赏
举报
回复
断点追踪`
羽飞
2010-12-24
打赏
举报
回复
楼上的建议不错,最好在使用全局变量的地方做个标记,尤其是在修改全局变量时
ZXW0521
2010-12-24
打赏
举报
回复
写一个函数,只有这个函数会改这个全局变量,其它地方都调这个函数,应该就好调试一些了
csc_xixi
2010-12-24
打赏
举报
回复
其实我觉得用调试,然后不断的观察它的值,注意变化,或者用个if语句,当值发生变化,就输出一条提示信息
memoleak
2010-12-24
打赏
举报
回复
使用观察点。。。
现在多数CPU都能支持数据断点功能。
在数据断点使能时,
当CPU访问该地址时,CPU会陷入异常。在异常处理程序里面可以处理之。。。
参见GDB使用手册
flysnowhite
2010-12-24
打赏
举报
回复
我只会最简单的单步跟踪,F10或F11,若全局变量和局部变量同名,自己区分是那一个变量起作用。
如果希望追踪的话,借鉴操作系统的PV操作。当全局变量变化时,记录调用的函数及语句即可。具体编程较麻烦。
prohibit
2010-12-24
打赏
举报
回复
感觉还是少用全局变量好,要是可以还是改为参数传递吧,全局变量可能会在一些不明显的包含文件中被重新定义,若是使用的少还好跟踪些,要是使用的比较多、跟踪就麻烦了,记录日志应该是一个好的方法~~
weitao999
2010-12-24
打赏
举报
回复
关键是也复现不了,但通过已有的core文件能确认某个全局变量被改写了,所以只能先加调试信息,等下次出现时确认具体原因。
minmin0876
2010-12-24
打赏
举报
回复
如果可以调试的情况 可以才想几处 可疑点 加断点调试
或者 每个点都断 然后在变量那里看结果
爱上axure之 交互制作
1,本章节会给大家分享Axure的所有交互动作,从链接、元件、
全局变量
,中继器、其他五大类进行分享。 2,每节课将会,以内容介绍+功能解释+案例演示,三个步骤进行讲解,让大家能从根本理解课程的内容。 3,课程前三...
C++
全局变量
值
被修改
一个
全局变量
的
值
在执行某个函数是被莫名修改了。为验证
全局变量
的改动情况,写了一部分代码用于测试
全局变量
被未知原因改变的解决方法
有一次调试的
时
候发现
一个
变量定义成局部变量就能正常运行,而定义成
全局变量
就不能运行了。局部变量能运行说明我程序的逻辑是没问题的,找原因的
时
候一看是我
全局变量
经常会莫名其妙被改变。找了一圈发现这个变量...
Keil
全局变量
被修改
当数组中此元素的
值
修改
时
,该
全局变量
的
值
就别同
时
修改了。如下所示: int array[] = {0,1,2...}; /* 未给出数组大小 */ int global= 0; 三、解决办法(选择
一个
即可) 1、定义数组的
时
候给出数组的长
内存问题--
全局变量
被修改
我在
一个
类中定义了
一个
全局变量
a,然后在类初始化的
时
候给该变量赋
一个
初始
值
a=10。该变量有被其他类外部引用,但是外部引用只是使用该
值
,并没有修改该
值
。然后在
一个
Timer中每秒打印这个变量1次。 2)看到的现象...
C语言
69,335
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章