免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2293 | 回复: 4

函数参数传递时被修改,如何下断点? [复制链接]

论坛徽章:
0
发表于 2008-08-05 16:34 |显示全部楼层
#0  0xb7f0420d in REGION_UnionNonO (region=0xb3875058, r=0x0, rEnd=0x8285efc, top=633, bottom=634) at region.c:959
#1  0xb7f03cd0 in REGION_RegionOp (newReg=0x80fb664, reg1=0x80fb664, reg2=0xb3875114, overlapFunc=0xb7f0424d <REGION_UnionO>,
    nonOverlap1Func=0xb7f0419a <REGION_UnionNonO>, nonOverlap2Func=0xb7f0419a <REGION_UnionNonO> at region.c:747
#2  0xb7f04d57 in UnionRegion (dst=0x80fb664, src1=0x80fb664, src2=0xb3875114) at region.c:1304
#3  0xb7f04ed3 in AddClipRect (region=0x80fb664, rect=0xb387517 at region.c:1363
#4  0xb7e9d6ab in wndInvalidateRect (hWnd=135247384, prc=0xb387525c, bEraseBkgnd=1) at window.c:4368
#5  0xb7e9d9b1 in InvalidateRect (hWnd=135247384, prc=0xb387525c, bEraseBkgnd=1) at window.c:4457


问题出现frame 0 和 1之间.

(gdb) p *r
Cannot access memory at address 0x0
(gdb) up
#1  0xb7f03cd0 in REGION_RegionOp (newReg=0x80fb664, reg1=0x80fb664, reg2=0xb3875114, overlapFunc=0xb7f0424d <REGION_UnionO>,
    nonOverlap1Func=0xb7f0419a <REGION_UnionNonO>, nonOverlap2Func=0xb7f0419a <REGION_UnionNonO> at region.c:747
747                    (* nonOverlap1Func) (pdst, r1, r1BandEnd, top, bot);
(gdb) p *r1
$31 = {rc = {left = 0, top = 0, right = 0, bottom = 0}, next = 0x0, prev = 0x8285edc}
(gdb)

问题出现在调用(* nonOverlap1Func) (pdst, r1, r1BandEnd, top, bot)的时候r1是有效的, 结果到了frame 0后传进去的r1就变成了0x0;
程序有上10多个线程, 有可能是哪里越界造成传成r1的时候给覆盖掉了.我改怎么样下个断点,
断在frame 0状态下r被改成0x00的时候停住, 或者有更好的办法找出问题?

另外这个函数出现的几率是1/1000, 也就是前1000多次调用是不会出现问题的.
望ggjj们帮忙分析怎么弄? 先谢谢了!

论坛徽章:
0
发表于 2008-08-05 16:40 |显示全部楼层
watch不可以吗

论坛徽章:
0
发表于 2008-08-05 16:48 |显示全部楼层
我试过了,watch停不下来.

论坛徽章:
0
发表于 2008-08-05 19:59 |显示全部楼层
函数体断点
调用的时候断点

论坛徽章:
0
发表于 2008-08-05 20:32 |显示全部楼层
最有可能是内存溢出,strcpy或memcpy时超过了缓冲区的最大值
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP