社区
Windows SDK/API
帖子详情
内存读错误各位怎么调试,有什么好的方法
suigui
2002-12-18 05:23:46
'accces violation at 0x012d8d22: read of address ox00000ffe'
程序在运行了一段时间后,就报这个错误。跟踪不到,各位一般遇到这个问题,一般怎样做。越多方法越好,可以加分。谢谢先
...全文
117
12
打赏
收藏
内存读错误各位怎么调试,有什么好的方法
'accces violation at 0x012d8d22: read of address ox00000ffe' 程序在运行了一段时间后,就报这个错误。跟踪不到,各位一般遇到这个问题,一般怎样做。越多方法越好,可以加分。谢谢先
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
suigui
2002-12-19
打赏
举报
回复
下面是探测的结果:(logdll是自己写的一个dll。里面new了个数据模块窗体)
Error 00095. 0x340010 (Thread 0x05D8):
Resource from different RTL:
SysFreeMem(0x0373FB80)
Call Tree:
0x013DB1E9(=logdll.dll:0x07:1324A85)
0x013DB0ED(=logdll.dll:0x07:1324989)
0x013E2CD6(=logdll.dll:0x07:132C572)
0x013E2952(=logdll.dll:0x07:132C1EE)
0x01341483(=logdll.dll:0x07:128AD1F)
0x77F8B85E(=ntdll.dll:0x01:00A85E)
The memory block (0x0373FCB0) [size: 88 bytes] was allocated with malloc
Call Tree:
0x013E2E20(=logdll.dll:0x07:132C6BC)
0x013E2FC0(=logdll.dll:0x07:132C85C)
0x0CD0E52B(=CG32.DLL:0x01:00D52B)
0x0134CB79(=logdll.dll:0x07:1296415)
0x01345765(=logdll.dll:0x07:128F001)
0x013436AC(=logdll.dll:0x07:128CF48)
------------------------------------------
Functions called:
fflush (1 times)
delete (19 times)
vsnprintf (8 times)
free (14 times)
strcat (108 times)
sprintf (24458 times)
strftime (12175 times)
gmtime (12175 times)
memset (12175 times)
strtol (1052264 times)
strstr (24350 times)
strcpy (48704 times)
new (19 times)
SysReallocMem (24387 times)
SysFreeMem (61319 times)
SysGetMem (61320 times)
lstrlenA (1 times)
lstrcpynA (4 times)
calloc (1 times)
malloc (12186 times)
strlen (81 times)
memcpy (2 times)
Resource types used:
object (19 allocs, 19 max)
memory block (73507 allocs, 12538 max)
Modules used:
00400000 12/18/2002 18:07:54 E:\Work\LogProcessDll\Receive\SNSLogDaemon.exe
01810000 08/09/2002 22:00:00 C:\Program
Files\Borland\Delphi7\Bin\borlndmm.dll
0CD00000 02/01/2002 22:00:00 C:\PROGRA~1\Borland\CBUILD~1\Bin\CG32.DLL
1F7B0000 02/19/2002 16:36:30 C:\WINNT\System32\odbc32.DLL
1F850000 02/19/2002 16:36:32 C:\WINNT\System32\odbcint.dll
37F00000 09/20/2001 20:02:00 D:\Tool Files\Kingsoft\XDict\Cjktl32.dll
6DD30000 12/14/2001 19:47:16 C:\WINNT\System32\INDICDLL.dll
70BD0000 08/17/2001 22:43:40 C:\WINNT\system32\SHLWAPI.DLL
71780000 08/17/2001 22:43:40 C:\WINNT\system32\COMCTL32.DLL
74F50000 05/04/2001 20:05:02 C:\WINNT\system32\msafd.dll
74F90000 05/04/2001 20:05:02 C:\WINNT\System32\wshtcpip.dll
74FA0000 12/14/2001 19:48:28 C:\WINNT\System32\WS2HELP.DLL
74FB0000 05/04/2001 20:05:02 C:\WINNT\System32\WS2_32.DLL
74FD0000 05/04/2001 20:05:02 C:\WINNT\System32\WSOCK32.DLL
75010000 05/04/2001 20:05:02 C:\WINNT\system32\MPR.dll
75950000 12/14/2001 19:47:24 C:\WINNT\system32\LZ32.DLL
75E00000 05/04/2001 20:05:02 C:\WINNT\System32\IMM32.DLL
76AF0000 05/04/2001 20:05:02 C:\WINNT\system32\comdlg32.dll
777E0000 12/14/2001 19:48:18 C:\WINNT\system32\VERSION.DLL
77990000 05/04/2001 20:05:02 C:\WINNT\system32\OLEAUT32.DLL
77A30000 05/04/2001 20:05:02 C:\WINNT\system32\OLE32.DLL
77D20000 05/04/2001 20:05:02 C:\WINNT\system32\RPCRT4.DLL
77D90000 05/04/2001 20:05:02 C:\WINNT\system32\ADVAPI32.DLL
77DF0000 05/04/2001 20:05:02 C:\WINNT\system32\USER32.dll
77E60000 05/04/2001 20:05:02 C:\WINNT\system32\KERNEL32.DLL
77F40000 05/04/2001 20:05:02 C:\WINNT\system32\GDI32.DLL
77F80000 05/04/2001 20:05:02 C:\WINNT\System32\ntdll.dll
78000000 05/04/2001 20:05:02 C:\WINNT\system32\MSVCRT.DLL
785C0000 05/04/2001 20:05:02 C:\WINNT\system32\SHELL32.DLL
FFFA5F3F 12/10/2002 12:38:42 C:\Program Files\Common Files\Borland
Shared\BDE\IDAPI32.DLL
FFFF3764 12/18/2002 18:15:42 E:\Work\LogProcessDll\logdll.dll
FFFF5B74 12/10/2002 12:38:40 C:\Program Files\Common Files\Borland
Shared\BDE\BANTAM.DLL
FFFFCB74 12/10/2002 12:38:42 C:\Program Files\Common Files\Borland
Shared\BDE\IDR20009.DLL
==========================================
还有就是写了个如下函数,用了gmtime函数,打开codeguard测试程序,运行一段时间退出时,报道下面函数和gmtime函数有问题。
char *__fastcall TLogProcess::time2str( time_t t )
{ //typedef long time_t
static char buf[ 4 ][ 0x20 ];
static int i = 0;
struct tm *ti;
i = ( i + 1 ) % 4;
ti = gmtime( &t );
strftime( buf[ i ], 0x20, "%Y-%m-%d, %H:%M:%S", ti ); //Formats time for output.
// area = localtime(&t);
return buf[ i ];
}
//---------------------------------------------------------------------------
各位老大帮忙看看。
NowCan
2002-12-19
打赏
举报
回复
没看出来。
不过,这样写的用以何在?为什么要那个二维数组?
zywx
2002-12-18
打赏
举报
回复
检查一下你的代码有没有定义了指针而没有用new申请内存空间,就负值或写数据的地方,或者数组越界等,如下面的代码
char *buf;
buf[1]='a';
运行的时候,开始可能不会报错,但是多次调用肯定会出错。
NowCan
2002-12-18
打赏
举报
回复
换一台机器看看,是不是硬件出问题了?
invalid
2002-12-18
打赏
举报
回复
CodeGurad用了,没有探测到什么内存问题吗?
invalid
2002-12-18
打赏
举报
回复
应该是访问了不该访问的地址:
1.使用了野指针.参见上面我说的.
2.某个对象没有new就使用了.
rikky
2002-12-18
打赏
举报
回复
to invalid(空心菜之2.0开发中)
CodeGuard我们也用了,还是没法解决,现在根本就不知道什么地方的原因,也捕捉不到,痛苦!
weibz0525
2002-12-18
打赏
举报
回复
动态内存出现的错误,这种错误只会在程序执行才会被检测出来,我也要过这样的教训。查看你所有new的变量,是否用到了空指针,或者没附值,或者没释放。或者。。。。
rikky
2002-12-18
打赏
举报
回复
to NowCan
我们现在老是也出现这个内存地址冲突,好象根本不是你说的指针问题,而且问题根本无法捕捉,是不是会出现?最令人无法忍受的是我们的开发环境下几乎不再出现这种现象,但是给客户的话就会出现这个问题。
有人能知道原因吗?高手们!!
invalid
2002-12-18
打赏
举报
回复
用CodeGuard探测,可能会追踪到.
使用指针应该是先赋NULL值,然后使用,在使用前判断一下是否为NULL.
delete后要赋值为NULL.
Taiji02
2002-12-18
打赏
举报
回复
今天时间不够明天来。
NowCan
2002-12-18
打赏
举报
回复
没什么好办法,这个基本上和指针有关。
内存
访问
错误
大内高手—常见
内存
错误
随着诸如代码重构和单元测试等
方法
引入实践,
调试
技能渐渐弱化了,甚至有人主张废除
调试
器。这是有道理的,原因在于
调试
的代价往往太大了,特别是
调试
系统集成之后的BUG,一个BUG花了几天甚至数周时间并非罕见。 而这些难以定位的BUG基本上可以归为两类:
内存
错误
和并发问题。而又以
内存
错误
最为普遍,即使是久经沙场的老手,也有时也难免落入陷阱。前事不忘,后世之师,了解这
VC++ 6.0 中如何使用 CRT
调试
功能来检测
内存
泄漏
调试
方法
VC++ 6.0 中如何使用 CRT
调试
功能来检测
内存
泄漏 作者:JerryZ 下载例子源代码 最近看了周星星 Blog 中的一篇文章:“VC++6.0中
内存
泄漏检测”,受益匪浅,便运行其例子代码想看看 Output 窗口中的输出结果,可惜怎么弄其输出都不是预期的东西,郁闷了半天,便到水坛里找到周星星,请求他指点一、二,然而未果。没有办法,最后我一头栽进 MSDN 库狂搜了
电脑出现
内存
读
写
错误
的原因和解决
方法
当我们在计算机系统中运行一些容量较大的程序或者游戏时,系统常常会自动弹出“xx
内存
不能为read或written”的
错误
提示,遇到这种故障信息时,我们该如何才能将它有效排除,同时确保下次运行容量较大的程序或者游戏时,系统不会再次出现系统
内存
读
写
错误
呢?事实上,当我们不幸遭遇上面的故障信息时,我们可以尝试按照如下步骤进行依次排查: 移除无效插件程序 在上网冲浪的过
常见
内存
错误
大全
大内高手—常见
内存
错误
转载时请注明出处:http://blog.csdn.net/absurd随着诸如代码重构和单元测试等
方法
引入实践,
调试
技能渐渐弱化了,甚至有人主张废除
调试
器。这是有道理的,原因在于
调试
的代价往往太大了,特别是
调试
系统集成之后的BUG,一个BUG花了几天甚至数周时间并非罕见。而这些难以定位的BUG基本上可以归为两类:
内存
错误
和并发问题。而又以
内存
错误
最为
大内高手—常见
内存
错误
大内高手—常见
内存
错误
随着诸如代码重构和单元测试等
方法
引入实践,
调试
技能渐渐弱化了,甚至有人主张废除
调试
器。这是有道理的,原因在于
调试
的代价往往太大了,特别是
调试
系统集成之后的BUG,一个BUG花了几天甚至数周时间并非罕见。 而这些难以定位的BUG基本上可以归为两类:
内存
错误
和并发问题。而又以
内存
错误
最为普遍,即使是久经沙场的老手,也有时也难免落入陷阱。前事不忘,后世之师,
Windows SDK/API
1,221
社区成员
8,136
社区内容
发帖
与我相关
我的任务
Windows SDK/API
C++ Builder Windows SDK/API
复制链接
扫一扫
分享
社区描述
C++ Builder Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章