• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            2008年6月17日

            好久沒有更新了, 感覺進(jìn)步了許多, 也想跟大家分享, 但實(shí)在沒有時間寫博客, 既然原來寫了HookLogger的東西就堅持到底吧

            首先, 趕緊下載使用新版本的HookLogger吧, 呵呵

            新版本修復(fù)了一些bug, 也對Symbian OS 9 提供了正式的支持

            安裝完后在安裝路徑下根據(jù)SDK版本, 運(yùn)行 SetupHooks  即可, 具體步驟:
            首先在命令提示符下輸入

            devices

            獲得你的SDK對應(yīng)的 devices 標(biāo)識, 比如S60 3rd MR版本的SDK是S60_3rd_MR:com.nokia.s60

            然后找到你的HookLogger的安裝路徑, 并運(yùn)行

            SetupHooks S60_3rd_MR:com.nokia.s60

            這樣之后就可以啟動HookLogger, 然后啟動模擬器調(diào)內(nèi)存泄漏了, 方法與老版本一樣

            據(jù)說新版本還增加了其它的一些功能, 有待研究
            posted @ 2008-06-17 22:05 姜文拓 閱讀(1838) | 評論 (5)編輯 收藏

            2007年8月28日

            再次感謝諾基亞論壇的 beover1984 提供幫助!

            【參考文章】:http://www.symbian.net.cn/blog/post/5.html

            聲明:雖然上面的【參考文章】標(biāo)題是 Use HookLogger to trace memroy leak in S60 3rd SDK ,但 S60 第二版也適用!

            需要說明的是 EPOCROOT 是在 Windows 系統(tǒng)變量中改的且前后都要有“/”(不是 Windows 下用的“\”)

            也可以不用系統(tǒng)變量而直接使用下面的 perl 代碼 替換 HookEUSER.pl 的內(nèi)容 , 并把第53行改為你的 SDK 路徑(注意無盤符):

             1# HookEUSER.pl
             2
             3use strict;
             4use FindBin qw($Bin);
             5
             6my $badArg = 0;
             7my $remove = 0;
             8my $platform;
             9my $release = "UDEB";
            10my $arch;
            11if($#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
            41if($badArg || !defined($platform))
            42{
            43    print <<USAGE_EOF;
            44usage: HookEUSER.pl [-r] <PLATFORM> [RELEASE] [ARCH]
            45where: <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
            49USAGE_EOF
            50    exit(0);
            51}
            52
            53my $path = "/Symbian/8.0a/S60_2nd_FP2_SC/epoc32/release/wins/udeb";
            54chdir($path) or die "Failed setting cwd to $path";
            55my $euser = "euser.dll";
            56my $euser_orig = "euser.orig.dll";
            57my $hooks = "EUserParasite_$arch.dll";
            58my $hooks_src = "$Bin/$hooks";
            59die "Can't find \"$hooks_src\"" unless -$hooks_src;
            60print "Target path is $path\n";
            61die "Can't find \"$euser\" - wrong drive, arguments, or EPOCROOT env var?" unless -$euser;
            62if($remove)
            63{
            64    die "Can't find \"$euser_orig\" - was EUSER.DLL hooked by this script?" unless -$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}
            69else
            70{
            71    die "\"$euser_orig\" present - has EUSER.DLL already been hooked?" if -$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,再按照【參考文章】運(yùn)行程序就行了。
            程序的使用很簡單,這里不再贅述。
            定位到內(nèi)存泄露的地方后剩下的事就交給你了~~

            posted @ 2007-08-28 16:08 姜文拓 閱讀(2350) | 評論 (4)編輯 收藏

            2007年8月8日

            其中CSettingListListbox繼承自CAknSettingItemList

             1 void CSettingListListbox::EditItemL(TInt aIndex, TBool aCalledFromMenu)
             2 {
             3     if( aIndex == 2 )
             4     {
             5         TBuf<128> buf;
             6         TBool b = AknCommonDialogs::RunSelectDlgLD(buf, R_MEMORY_SELECTION_DIALOG);
             7         if ( b )
             8         {
             9             iAdvancedSettingData->iRingToneName.Copy(buf);
            10             (*SettingItemArray())[aIndex]->LoadL();//aIndex==2
            11             (*SettingItemArray())[aIndex]->UpdateListBoxTextL();//aIndex==2,修改text
            12         }
            13         return;
            14     }
            15 
            16     CAknSettingItemList::EditItemL(aIndex, aCalledFromMenu);
            17     ((*SettingItemArray())[aIndex])->StoreL();
            18 }

            感謝Nokia論壇的beover1984提供的幫助

            posted @ 2007-08-08 12:42 姜文拓 閱讀(511) | 評論 (0)編輯 收藏
            僅列出標(biāo)題  
             
            久久AⅤ人妻少妇嫩草影院| 国产精品久久新婚兰兰| 93精91精品国产综合久久香蕉 | 精品免费久久久久久久| 久久亚洲国产午夜精品理论片| 久久露脸国产精品| 久久天天躁狠狠躁夜夜96流白浆| 久久99精品久久久久久9蜜桃| 囯产极品美女高潮无套久久久| 91亚洲国产成人久久精品网址| 亚洲精品乱码久久久久久蜜桃图片| 久久国产精品国语对白| 久久天堂AV综合合色蜜桃网| 亚洲午夜无码久久久久小说| 久久97久久97精品免视看秋霞| 亚洲国产精品无码久久| 婷婷久久综合| 蜜臀久久99精品久久久久久| 久久精品无码一区二区三区| 色综合久久无码五十路人妻| 色播久久人人爽人人爽人人片AV| 久久播电影网| 久久久久久无码国产精品中文字幕| 青青青国产精品国产精品久久久久| 中文字幕乱码久久午夜| 久久久久亚洲AV成人网人人网站| 久久久久国产亚洲AV麻豆| 国产精品永久久久久久久久久| 久久青草国产精品一区| 99精品国产在热久久无毒不卡 | 91精品国产色综久久| 久久这里只有精品久久| 国产精品久久波多野结衣| 精品免费久久久久久久| 久久中文字幕一区二区| 亚洲狠狠综合久久| 伊人久久综在合线亚洲2019 | 国产午夜精品久久久久九九| 久久久久国产精品麻豆AR影院 | 久久久精品久久久久影院| 2021国产精品久久精品|