提示“程序已关闭”,是否说明我的程序发生内存泄露?

Brunhild 2006-02-11 11:28:19
在模拟器上关闭程序后,有个“STOP”提示“程序已关闭”,是否说明我的程序发生内存泄露?
我检查过程序,就是运行了下面这个函数就出现问题,难道手工添加的ITEM不能自动释放?

void CTeleFonDialog::AddItemL(const TDes& caption, TInt& iNewItemId, unsigned char* pText)
{
CCoeControl* myEdControl=myEdControl = CreateLineByTypeL( caption, ActivePageId(),iNewItemId, EEikCtEdwin, NULL );
CEikEdwin* myEdwin = static_cast<CEikEdwin*> ( myEdControl );
myEdwin->ConstructL( EEikEdwinNoHorizScrolling | EEikEdwinResizable|EEikDlgItemSeparatorAfter, 10,64, 10 );
myEdwin->CreateTextViewL();
Line( iNewItemId )->ActivateL();

TBuf<50> txt(NULL);
//CharToTDes函数很多地方都用到,应该不是这里的问题
CTeleFonDocument::CharToTDes(pText, txt);
myEdwin->SetTextL(&txt);

iNewItemId++;
}
...全文
176 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenziteng 2006-02-16
  • 打赏
  • 举报
回复
收信:)
Brunhild 2006-02-16
  • 打赏
  • 举报
回复
邮件已发出,先多谢 chenziteng(陈子腾)
Brunhild 2006-02-16
  • 打赏
  • 举报
回复
多谢 chenziteng(陈子腾) ,我先自己研究一下。
chenziteng 2006-02-15
  • 打赏
  • 举报
回复
我有HookLogger的基本用法说明, 但由于某些原因不能放出来, 给我发email我传给你.
chenziteng@163.com
Brunhild 2006-02-14
  • 打赏
  • 举报
回复
晕,按照上面的方法查看泄漏的地址,既不是CBASE*,也不是TDESC16*,那是什么东西啊?
HookLogger装上后好象变得不太稳定了,而且还不太会用。

而且SDK附带的FORM例子在增加FIELD后也同样有泄漏问题(我的AddItemL函数实际是从它上面改过来的)。
chenziteng 2006-02-14
  • 打赏
  • 举报
回复
HookLogger绝对可以查出来, 有时间好好琢磨琢磨它吧.
chenziteng 2006-02-14
  • 打赏
  • 举报
回复
如果你喜欢钻研的话可以试试这个工具:
Symbian HookLogger
http://www.symbian.com/developer/downloads/tools.html#HookLogger
Brunhild 2006-02-14
  • 打赏
  • 举报
回复
好的,我试试,非常感谢!
Beover1984 2006-02-13
  • 打赏
  • 举报
回复
在\Epoc32\wins\c\system\bootdata下创建ErrRd文件(没有扩展名),在程序出错后显示的信息会多一些.
Brunhild 2006-02-13
  • 打赏
  • 举报
回复
我已创建erred文件,但没有任何内容输出!
chenziteng 2006-02-13
  • 打赏
  • 举报
回复
上面那篇用的是CodeWarrior,如果用的是VC则参照这篇:
http://www3.symbian.com/faq.nsf/0/693C8653846CA8F980256A570051B8FE?OpenDocument
chenziteng 2006-02-13
  • 打赏
  • 举报
回复
内存泄漏。

按这篇文档上的方法查:
Tracking down memory leaks
http://www.newlc.com/article.php3?id_article=1093
Brunhild 2006-02-13
  • 打赏
  • 举报
回复
有其他提示了:Alloc:1753fb180
什么意思?
Brunhild 2006-02-13
  • 打赏
  • 举报
回复
好的,再试试
chenziteng 2006-02-12
  • 打赏
  • 举报
回复
.

  如果你用的是CodeWarrior版的SDK,则在SDK根目录的"\Epoc32\winscw\c\system\bootdata"子目录中创建一个名为erred的空文件,再运行Emulator和你的程序,最后退出的时候能获得更多的提示信息。

  如果你用的是其它版的SDK,则上述目录应为"\Epoc32\wins\c\system\bootdata"

3,119

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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