JavaCS
專注于 C++ 與 Symbian S60
導航
C++博客
首頁
新隨筆
聯系
聚合
管理
<
2008年4月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
統計
隨筆 - 3
文章 - 0
評論 - 8
引用 - 0
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(2)
給我留言
查看公開留言
查看私人留言
隨筆分類
C++
(rss)
Series 60(1)
(rss)
Symbian OS(2)
(rss)
隨筆檔案
2008年6月 (1)
2007年8月 (2)
搜索
最新評論
1.?great
評論內容較長,點擊標題查看
--dress
2.?re: 新版本的HookLogger出來了!
評論內容較長,點擊標題查看
--research paper help
3.?re: 新版本的HookLogger出來了!
評論內容較長,點擊標題查看
--dissertation
4.?re: 新版本的HookLogger出來了!
評論內容較長,點擊標題查看
--SandovalGeorgina35
5.?re: 解決 Symbian OS 內存泄露的好工具 - HookLogger!
評論內容較長,點擊標題查看
--姜文拓
閱讀排行榜
1.?解決 Symbian OS 內存泄露的好工具 - HookLogger!(2338)
2.?新版本的HookLogger出來了!(1764)
3.?S60中,實現SettingItemList中通過RunSelectDlgLD獲得文件路徑并將其賦給CAknTextSettingItem的代碼(503)
評論排行榜
1.?新版本的HookLogger出來了!(5)
2.?解決 Symbian OS 內存泄露的好工具 - HookLogger!(4)
3.?S60中,實現SettingItemList中通過RunSelectDlgLD獲得文件路徑并將其賦給CAknTextSettingItem的代碼(0)
解決 Symbian OS 內存泄露的好工具 - HookLogger!
再次感謝諾基亞論壇的 beover1984 提供幫助!
【參考文章】:
http://www.symbian.net.cn/blog/post/5.html
聲明:雖然上面的【參考文章】標題是 Use HookLogger to trace memroy leak in S60 3rd SDK ,但 S60 第二版也適用!
需要說明的是 EPOCROOT 是在 Windows 系統變量中改的且前后都要有“/”(不是 Windows 下用的“\”)
也可以不用系統變量而直接使用下面的 perl 代碼 替換 HookEUSER.pl 的內容 , 并把第53行改為你的 SDK 路徑(注意無盤符):
1
#
HookEUSER.pl
2
3
use
strict;
4
use
FindBin qw(
$Bin
);
5
6
my
$badArg
=
0
;
7
my
$remove
=
0
;
8
my
$platform
;
9
my
$release
=
"
UDEB
"
;
10
my
$arch
;
11
if
($
#
ARGV >= 0)
12
{
13
my
$arg
=
0
;
14
if
(
$ARGV
[
0
]
=~
m
!^
[
-/
]r$
!
i)
15
{
16
$remove
=
1
;
17
++
$arg
;
18
}
19
if
($
#
ARGV >= $arg && $ARGV[$arg] =~ /^wins(cw)?$/i)
20
{
21
$platform
=
$ARGV
[
$arg
];
22
$arch
=
(
$platform
=~
/^
wins$
/
i)
?
"
eka1
"
:
"
eka2
"
;
23
++
$arg
;
24
}
25
while
($
#
ARGV >= $arg && $ARGV[$arg] =~ /^(udeb|urel|eka1|eka2)$/i)
26
{
27
if
(
$ARGV
[
$arg
]
=~
/^
(udeb
|
urel)$
/
i)
28
{
29
$release
=
$ARGV
[
$arg
];
30
}
31
else
32
{
33
$arch
=
$ARGV
[
$arg
];
34
}
35
36
++
$arg
;
37
}
38
$badArg
=
($
#
ARGV >= $arg);
39
}
40
41
if
(
$badArg
||
!
defined
(
$platform
))
42
{
43
print
<<
USAGE_EOF;
44
usage
:
HookEUSER
.
pl [
-
r]
<
PLATFORM
>
[RELEASE] [ARCH]
45
where
:
<
PLATFORM
>
==
WINS
|
WINSCW
46
[RELEASE]
==
UDEB
|
UREL (default
==
UDEB)
47
[ARCH]
==
EKA1
|
EKA2 (default
==
EKA1
for
WINS
,
EKA2
for
WINSCW)
48
-
r restores original EUSER
.
DLL
49
USAGE_EOF
50
exit
(
0
);
51
}
52
53
my
$path
=
"
/Symbian/8.0a/S60_2nd_FP2_SC/epoc32/release/wins/udeb
"
;
54
chdir
(
$path
) or
die
"
Failed setting cwd to $path
"
;
55
my
$euser
=
"
euser.dll
"
;
56
my
$euser_orig
=
"
euser.orig.dll
"
;
57
my
$hooks
=
"
EUserParasite_$arch.dll
"
;
58
my
$hooks_src
=
"
$Bin/$hooks
"
;
59
die
"
Can't find \
"
$hooks_src
\
""
unless
-
e
$hooks_src
;
60
print
"
Target path is $path\n
"
;
61
die
"
Can't find \
"
$euser
\
"
- wrong drive, arguments, or EPOCROOT env var?
"
unless
-
e
$euser
;
62
if
(
$remove
)
63
{
64
die
"
Can't find \
"
$euser_orig
\
"
- was EUSER.DLL hooked by this script?
"
unless
-
e
$euser_orig
;
65
unlink
$euser
or
die
"
Can't delete hooked EUSER.DLL - is emulator (etc) running?
"
;
66
rename
(
$euser_orig
,
$euser
) or
die
"
Failed renaming $euser_orig to $euser
"
;
67
print
"
Restored $euser from $euser_orig; hooks no longer in place\n
"
;
68
}
69
else
70
{
71
die
"
\
"
$euser_orig
\
"
present - has EUSER.DLL already been hooked?
"
if
-
e
$euser_orig
;
72
my
$hooked_euser
=
"
$euser.HOOKED
"
;
73
unlink
$hooked_euser
;
#
earlier attempt may have died with "in use", etc
74
my
$cmd
=
"
copy \
"
$hooks_src
\
""
;
75
$cmd
=~
tr
-/-\\-
;
76
system
(
$cmd
)
==
0
or
die
"
Failed running \
"
$cmd
\
""
;
77
$cmd
=
"
\
"
$Bin
/
AttachDll
\
"
$euser $hooks $hooked_euser
"
;
78
system
(
$cmd
)
==
0
or
die
"
Failed running \
"
$cmd
\
""
;
79
rename
$euser
,
$euser_orig
or
die
"
Failed renaming $euser to $euser_orig - is emulator (etc) running?
"
;
80
rename
$hooked_euser
,
$euser
or
die
"
Failed renaming $hooked_euser to $euser
"
;
81
print
"
Modified $euser to hook $hooks, original is $euser_orig.\nRun HookEUSER with -r to restore\n
"
;
82
}
83
這樣你只要安裝完 HookLogger 并按照上面的方法更新 HookEUSER.pl,再按照【參考文章】運行程序就行了。
程序的使用很簡單,這里不再贅述。
定位到內存泄露的地方后剩下的事就交給你了~~
posted on 2007-08-28 16:08
姜文拓
閱讀(2338)
評論(4)
編輯
收藏
引用
所屬分類:
Symbian OS
Comments
#
re: 解決 Symbian OS 內存泄露的好工具 - HookLogger!
wwp
您好,按您說的這個我試過,但是不能成功,而且會引起epoc啟動失敗,請指教。郵箱:wwpkx@163.com
Posted @ 2007-12-29 14:00
回復
更多評論
#
re: 解決 Symbian OS 內存泄露的好工具 - HookLogger!
姜文拓
哦, 我用的是 S60 2nd Ed fp2 wins 的 sdk, 使用過程中也發現有幾個版本的SDK會出現問題, 比如 2nd Ed fp3 , 這個工具2年多沒更新了, 其實小毛病還是有不少的, 你可以多試試, 等調完內存泄露再用欲發布的sdk打包
Posted @ 2008-01-02 10:13
回復
更多評論
#
re: 解決 Symbian OS 內存泄露的好工具 - HookLogger!
郭天文
@姜文拓
大哥, 你說第二版可以使用, 這話太不負責了吧.. 我用2nd_fp3就用不了, 網上有人說, 不支持第二版的..你第二版試過通過么, 若通過請指教. 謝謝
gtwdaizi@163.com
Posted @ 2008-04-18 19:45
回復
更多評論
#
re: 解決 Symbian OS 內存泄露的好工具 - HookLogger!
姜文拓
@郭天文
呵呵, 我這個當然是自己用過才敢說出來的
我當時的開發環境是 VS 2003 + Carbide.vs 2.0.1 + 2nd_fp2 wins
2nd_fp3好像是不支持, 我原來好像試過(現在記不清了), 也有段時間沒用這個工具了
現在第二版的開發環境已經換成 VS 2005 + Carbide.vs 3.0.1 + 2nd_fp2 winscw 了, 也有點擔心這個工具用不了... 過段時間應該就能用上它了
個人感覺還是Symbian/Nokia有點不重視開發者, 這個工具有年頭沒更新了...
您的評論是 2008-01-02 發的, 可我今天才收到系統提醒郵件...由于比較懶, 博客一直沒更新...也沒來看過...這個回復應該也沒什么價值了吧...
不過說來也巧, 今天剛收錄了您博客的一篇文章, 呵呵, 共同進步吧
Posted @ 2008-04-18 21:11
回復
更多評論
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
新版本的HookLogger出來了!
解決 Symbian OS 內存泄露的好工具 - HookLogger!
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © 姜文拓
国产精品久久久久久吹潮
|
久久人爽人人爽人人片AV
|
国内精品久久久久久中文字幕
|
国产成人无码久久久精品一
|
久久99精品久久久久久动态图
|
亚洲国产精品人久久
|
久久精品一区二区影院
|
久久人人爽人人爽人人爽
|
久久青青草原综合伊人
|
久久乐国产精品亚洲综合
|
欧美牲交A欧牲交aⅴ久久
|
亚洲一区中文字幕久久
|
久久久久久久免费视频
|
久久免费视频观看
|
久久精品国产清自在天天线
|
久久精品女人天堂AV麻
|
久久久久久久免费视频
|
青青青青久久精品国产
|
AV无码久久久久不卡网站下载
|
久久综合九色综合久99
|
久久夜色精品国产亚洲
|
国产精品99久久不卡
|
久久综合久久自在自线精品自
|
亚洲午夜久久久久久久久电影网
|
热RE99久久精品国产66热
|
久久精品麻豆日日躁夜夜躁
|
性做久久久久久久久久久
|
欧美亚洲另类久久综合
|
久久亚洲私人国产精品
|
手机看片久久高清国产日韩
|
精品久久久久久久久久中文字幕
|
久久午夜无码鲁丝片
|
狠狠色综合网站久久久久久久高清
|
久久无码一区二区三区少妇
|
97r久久精品国产99国产精
|
99久久国产精品免费一区二区
|
青青热久久国产久精品
|
亚洲Av无码国产情品久久
|
久久久久亚洲精品男人的天堂
|
国产精品热久久毛片
|
国产精品免费久久久久影院
|