|
|
Classification: |
C++ |
Category: |
Emulator |
Created: |
01/04/2000 |
Modified: |
06/13/2001 |
Number: |
FAQ-0458 |
Platform: |
ER5 |
|
Question: Sometimes the WINS emulator dies with a little Windows alert box that says, e.g., "Plat: 46". What does this mean?
Answer: The WINS equivalent of a triple-beep reset is to put up a Windows alert box. You need to look closely at the title bar of
the box in order to distinguish between "Panic" and "Fault" because the numbers mean different things for each.
It is was a Fault, then the number is from the following enumerated type:
ESegVirtualFreeFailed=0, EProcDuplicateHandle=1, EProcSetPriorityFailed=2, EProcResumeIllegal=3, EThrdDuplicateHandle=4, EThrdResumeFailed=5, EThrdSuspendFailed=6, EThrdSetPriorityFailed=7, EIniKernelCriticalSection=8, EIniEventCriticalSection=9, EIniStartThreadSem=10, EIniHoldThreadSem=11, EIniPowerSem=12, EIniPowerEvent=13, EIniKernelStartedSem=14, EIniFileServerStartedSem=15, EIniCreateKernelHeapFailed=16, EIniSynchroniserSemaphore=17, EIniKernelWindowThread=18, EIniMainThread=19, EIniNullSemaphore=20, EGuiGetModuleHandle=21, EGuiRegisterWindow=22, EGuiKernelWindowCreate=23, EGuiRegisterChildWindow=24, EGuiKernelChildWindowCreate=25, EGuiCreateBitmap=26, EGuiChildWinProc=27, EGuiEnterCS=28, EGuiLeaveCS=29, EGuiStandbyWhilstOff=30, EGuiResetPowerEvent=31, EGuiSetPowerEvent=32, EGuiWaitPowerOnFailed=33, ETimStartTimer=34, ETimStopTimer=35, EUtlAllocConsole=36, EUtlReadConsole=37, EUtlWriteConsole=38, EUtlExecBadFunction=39, EUtlUnkownBlockType=40, EUtlEnterCS=41, EUtlLeaveCS=42, ETHeapCreateSizeNegative=43, ETHeapCreateMaxLessThanMin=44, EPccdControllerCreate=45, ESystemException=46, EIniEmulatorPath=47, EIniEmulatedCDrive=48, EUtlSvrMessageCompletion=49, EUtlSvrReceiveNotPending=50, EUtlSvrReceiveAlreadyPending=51, EUtlSvrMessageAlreadyWaiting=52
The last seven of these are new to ER5. If the title says Panic, then the number is from this enumeration:
ESemInitialCountNegative=0, ESemSignalCountNegative=1, ESegMaxSizeExceeded=2, EProcBadPriority=3, EKernelStartupThread=4, EThrdBadPriority=5, EPccdChunkAccessOutOfRange=6, EPccdMediaChangeTickFault=7, EDevOrdinalZero=8
Thus the reported plat:46 means ESystemException. The problem will very likely be resolved by restarting the app or the emulator.
hese alert boxes shouldn't happen - they are typically associated with unexpected errors from underlying Win32 APIs, or some
other indication that the emulator has got itself into a state which makes no sense in terms of EPOC: for example the EGuiStandbyWhilstOff
message which happens if the emulated EPOC system is switched off while it is switched off (?!); or a needed dll is in use
(being rebuilt?) when called.
|
|
|