2009年6月20日 星期六

錯誤代碼KERN-EXEC 3

發生錯誤代碼KERN-EXEC 3,通常是存取非法的記憶體位址

例如使用一個指向NULL的指標


TInt CRingContainer::CountComponentControls() const
{
return 3;
// return number of controls inside this container
}

CCoeControl* CRingContainer::ComponentControl(TInt aIndex) const
{
switch ( aIndex )
{
case 0:
return iLabel;
case 1:
return iToDoLabel;
default:
return NULL;
}
}


若定義CountComponentControls()函數

則創建Container時會呼叫ComponentControl()函數,將控制項顯示出來。

如果return NULL的話,並不是一個合法存取位址

因此出現錯誤代碼KERN-EXEC 3。

錯誤代碼CONE 15

昨天莫名其妙被錯誤代碼CONE 15重擊

查了一下錯誤代碼列表

很明顯Resource File沒讀進去

Google一下發現,原來必須給Resource File一組4byte的辨識代碼

NAME ADZW
#include
#include
.
.
.
RESOURCE RSS_SIGNATURE{}
.
.



查看錯誤代碼

Symbian Emulator若在你開發過程中發生kernel panic

是不會發出錯誤代碼的,若要看程式異常結束的原因

在\Epoc32\winscw\c\system\bootdata\

建立ErrRd檔(無副檔名),此後程式發生錯誤Emulator便會顯示錯誤代碼。

移除模擬器中的專案

在Symbian Emulator中會留下開發過得專案

即使在IDE中移除了專案,模擬器還是存在開發過得專案的APP檔

可從\Epoc32\release\winscw\udeb\z\system\apps\中

找到開發過得專案資料夾刪除即可。