我的程序在调试状态下运行有奇怪的问题。。。

trancebaby 2003-01-13 10:23:18
每次运行程序的时候,程序会在一个我没有设过断点的地方停下来,也没有给出错误信息。
图见:http://pics.tom.com/private/showpic.php?AlbumID=80890&PictureID=844341

我用了codeGuard。不知道是不是codeGuard的问题。

然后在结束程序的时候codeGuard的log说什么资源泄漏什么的,就是在刚才这个没有设过断点但是会停下来的地方申请的资源。

好奇怪~~~我要被烦死了。。
...全文
44 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
penu 2003-02-26
  • 打赏
  • 举报
回复
stl没问题。
trancebaby 2003-02-14
  • 打赏
  • 举报
回复
楼上两位,哎。。。我费了半天劲,新建了一个project,把原来的东西重新加了进去。。。仍然出现这个问题。。。

Error 00038. 0x300010 (Thread 0x0590):
Resource leak: The object (0x1331380) was never deleted

The object (0x01331380) [size: 96 bytes] was created with new
Call Tree:
0x00413497(=ResEditor.exe:0x01:012497) E:\PROGRAM FILES\BORLAND\CBUILDER5\INCLUDE\rw/ctype.h#494
0x0040C9F1(=ResEditor.exe:0x01:00B9F1) E:\PROGRAM FILES\BORLAND\CBUILDER5\INCLUDE\rw/locimpl.h#454
0x004C2D45(=ResEditor.exe:0x01:0C1D45)
0x0040C591(=ResEditor.exe:0x01:00B591) E:\PROGRAM FILES\BORLAND\CBUILDER5\INCLUDE\rw/usefacet.h#72
0x0040BF3B(=ResEditor.exe:0x01:00AF3B) E:\PROGRAM FILES\BORLAND\CBUILDER5\INCLUDE\ios.h#375
0x004B909E(=ResEditor.exe:0x01:0B809E)
trancebaby 2003-02-14
  • 打赏
  • 举报
回复
我在泄露的地方下了断点,运行停下来然后看一下call stack。这个东西是stl里的basic_ios的init用到的。。。
我有点怀疑是borland实现stl时候的bug。。。

00413490 __rwstd::create_classic_facet<std::ctype<char> >( =NULL)
0040C9F1 __rwstd::facet_maker<std::ctype<char> >::maker_func(t=0, name=:0055A16F, refs=0)
004C2D45 std::locale::__make_explicit
0040C591 std::use_facet<std::ctype<char> >(loc=:0012FE7C)
0040BF3B std::basic_ios<char, std::char_traits<char> >::widen(this=:006796B8, c=' ')
004B909E std::basic_ios<char, std::char_traits<char> >::init
004B9000 std::basic_ios<char, std::char_traits<char> >::basic_ios<char, std::char_traits<char> >
004B99F7 std::basic_istream<char, std::char_traits<char> >::basic_istream<char, std::char_traits<char> >
004C0238 __tpdsc__ std::ios_base::Init
004CCF15 __init_exit_proc
004CD0EB __startup
penu 2003-02-14
  • 打赏
  • 举报
回复
要说多少次?

你的资源没有释放,好好查查。

1、新建一个应用程序,不作任何改动,编译,看一下是否有问题?
是:CB有问题,重装。
否:你的程序有问题,转2。
2、查看你的程序中是否有用到第三方控件?
是:转3。
否:转4。
3、检查程序中用到的控件是否有BUG?
是:如果有源码,修正;否则改用其它控件。
否:转4。
4、检查整个程序中资源分配与释放情况,资源是否都正确释放了?有时报错提示的位置不一定正确,所以要检查整个程序。
是:检查CodeGuard的设置,重试。
否:改正它。
penu 2003-02-13
  • 打赏
  • 举报
回复
你好好查一下资源分配、使用与释放的情况。
把你codeguardLog贴出来看一下。
trancebaby 2003-02-13
  • 打赏
  • 举报
回复
哎,这个问题还是不知道怎么解决。。。苦恼中~~~
cupidvenus 2003-02-13
  • 打赏
  • 举报
回复
我想起我也遇到过这问题的,我是重新生成新工程,然后将界面重新做一遍,程序一字不改拷贝过来,运行后一切正常。
cscer 2003-02-13
  • 打赏
  • 举报
回复
如果其它工程都没有问题,只是这个出错的话

那么新建一个工程文件,重新编译吧

学习中……
fancy_zhh 2003-01-19
  • 打赏
  • 举报
回复
不知道学习
trancebaby 2003-01-17
  • 打赏
  • 举报
回复
再看一张图,是codeguardLog,就是关闭程序的时候说资源泄漏的,说有内存没释放掉,申请内存就是在那个facet_maker里的
http://pics.tom.com/gallery/private/200301/859477_98617.JPG

to penu(懒猫) :
那个文件是库文件,我都不知道它在做什么,怎么改阿?
penu 2003-01-17
  • 打赏
  • 举报
回复
把return那句改写一下看看情况。
trancebaby 2003-01-17
  • 打赏
  • 举报
回复
我用的是#include <fstream>,没有用到#include <isftream.h>。。
老大好幽默哦。。你“坐”在程序中。。。。

各位知道图里面的facet_maker是做什么?
penu 2003-01-17
  • 打赏
  • 举报
回复
这样啊,那就不是那的错了,你查下程序其它地方,从情况看很大可能是内存泄漏的问题。
RomanticProgrammer 2003-01-16
  • 打赏
  • 举报
回复
我想应该不是ifstream的原因.
你坐在程序中把#include <isftream.h>注销掉看看.
trancebaby 2003-01-16
  • 打赏
  • 举报
回复
没有抛出异常。就莫名其妙的像图那样停下来。。。。

不过我试过如果关掉codeGuard还是会出现这种情况。。。后来发现我在打开文件(我用的是ifstream)也会出现这种情况,停在同样的地方。。。

我想可能是bcb对某些模板库支持的不是很好。。
cupidvenus 2003-01-16
  • 打赏
  • 举报
回复
有没有抛出异常?
trancebaby 2003-01-14
  • 打赏
  • 举报
回复
但是codeGuard在这个时候没有报错阿。。。

以前CodeGuard会报错的时候,如果不在调试环境里运行,直接运行程序文件,也会报错,说生成一个log。但是这个程序如果在外面直接运行,不会报这种错。
trancebaby 2003-01-13
  • 打赏
  • 举报
回复
没有设置单步运行,而且也没有报错。。。

我都是按“Run”三角按钮来运行,由于有这个东西,要按两次“Run”才能看到程序窗口。。。

没有人碰到这种情况么?
痞子酷 2003-01-13
  • 打赏
  • 举报
回复
你好像设置啦单步运行,或者你的程序在debug是这个地方报错。
jishiping 2003-01-13
  • 打赏
  • 举报
回复
加了codeGuard的话,每次codeGuard发现问题的时候,都会在有问题的地方停下来,本来就是这样的。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧