Category: KERN

These panic numbers represent errors which cause the Kernel itself to terminate. When the kernel terminates for the reasons listed here, it is said to fault rather than panic.

The faults themselves are raised by kernel side code.

Note: many of the faults listed here are raised in debug builds only.

Fault number

Reason

0-3

Not used.

4

This fault is raised when a system thread has panicked or terminated causing the entire system to re-boot.

5

Not used.

6

This fault is raised when adding a code segment, a DCodeSeg object, to the dependency table of another code segment.

The fault occurs when the number of dependent code segments added exceeds the maximum expected, suggesting some inconsistency.

Note: DCodeSeg is internal to the Symbian platform.

7

Not used.

8

This fault is raised when the thread that deals with raw hardware events, as generated by the hardware drivers of a pointer device, a keyboard etc., has terminated. The thread is referred to as the thread event hook.

Note:

  • The most common cause is the death of the window server "wserv".

  • Raw hardware events are represented by TRawEvent objects.

9

This fault is raised when an attempt to allocate the buffer that is to contain raw hardware events (as represented by a set of TRawEvent objects), cannot be allocated.

10-14

Not used.

15

This fault is raised when a thread or process is panicked or terminated when one of the following is true:

  • the kernel is locked.

  • the current thread holds a fast mutex.

16

Not used.

17

Not used.

18

This fault is raised by internal functions, which as part of their implementation, fetch a DObject based on the object type, a TObjectType type.

The fault occurs when the value representing the object type lies outside the permitted values.

The fault can also be raised by Kern::ObjectFromHandle().

Note: TObjectType is internal to the Symbian platform.

19

This fault is raised by a kernel side session (DSession) object's destructor if that session has not been detached from the kernel side server (DServer) object by the time the destructor is called.

Note: DSession and DServer are internal to the Symbian platform.

20

This fault is raised in debug builds only.

The fault is raised by DSession::Send() when an ASSERT, that expects a message to be free, fails.

Note: DSession is internal to the Symbian platform.

21

Not used.

22

This fault is raised by a kernel side session (DSession) object's destructor if there are still messages outstanding on that session by the time the destructor is called.

Note: DSession is internal to the Symbian platform.

23

Not used.

24

This fault is raised by a kernel side server (DServer) object's destructor if there are sessions still attached to that server by the time the destructor is called.

Note: DServer is internal to the Symbian platform.

25

This fault is raised by a kernel side server (DServer) object's destructor if that server still has messages that have been delivered but not yet accepted by the time the destructor is called.

26

This fault is raised by a kernel side server (DServer) object's Close() function if that server still has messages that have been delivered but not yet accepted.

27

This fault is raised by a kernel side session (DSession) object when the server calls its ClosefromDisconnect() function to indicate completion of the disconnection, and the session object's access count is not zero.

Note: DSession is internal to the Symbian platform.

28

This fault is raised in debug builds only.

This fault is raised when a message is being freed and the message appears to belong to an unknown message pool.

29

This fault is raised by a kernel side session (DSession) object's destructor if there are still messages outstanding on that session by the time the destructor is called.

Note: DSession is internal to the Symbian platform.

30-40

Not used.

41

This fault is raised when the DFC that is used to restart the second absolute timer queue (TSecondQ) finds that the queue is not locked.

42

This fault is raised by the DLogicalChannel destructor if there are outstanding messages by the time the destructor is called.

43

This fault is raised by a kernel side session (DSession) object's destructor if the object's access count and the total client access count are not zero by the time the destructor is called.

Note: DSession is internal to the Symbian platform.

44

This fault is raised when the kernel heap is being created and the specified initial size is less than or equal to the minimum value defined by KMinHeapSize.

45-47

Not used.

48

This fault is raised if creation of the machine configuration mutex fails during initialisation of the RAM drive.

49

This fault is raised if creation of a new chunk for the internal RAM drive fails.

50

This fault is raised if creation of the microkernel fails.

51

This fault is raised if the 3rd phase initialisation of the kernel fails.

52

This fault is raised if the startup of kernel extensions fails.

53-56

Not used.

57

This fault is raised if initialisation of the RAM drive fails.

58-62

Not used.

63

This fault acts as a trap if a thread calls NKern::ThreadKill() to terminate itself, and the call to that NKern::ThreadKill() function returns. When a thread calls on itself, the call should not return.

64

This fault is raised if an attempt is made to set an invalid timer type (TTimer::SetType()).

Note: TTimer is internal to the Symbian platform.

65

The fault is raised when updating a tick timer queue, and the delta value is greater than the maximum permitted.

66

This fault is raised in debug builds only.

The fault is raised when setting the thread (DThread) priority, and the priority value is not a valid value.

Note: DThread is internal to the Symbian platform.

67

This fault is raised in debug builds only.

This fault is raised when a mutex (DMutex) is signalled (DMutex::Signal()) by the wrong thread.

Note: DMutex is internal to the Symbian platform.

68

This fault is raised in debug builds only.

This fault is raised when a mutex (DMutex) is signalled (DMutex::Signal()) and the current thread (DThread) is not ready to run.

Note: DMutex and DThread are internal to the Symbian platform.

69

This fault is raised in debug builds only.

This fault is raised when a wait is called on a mutex (DMutex::Wait()), and the current thread (DThread) is not ready to run.

Note: DMutex and DThread are internal to the Symbian platform.

70

This fault is raised in debug builds only.

This fault is raised when a wait is called on a mutex (DMutex::Wait()), and the current thread (DThread) is blocked, waiting on another object.

Note: DMutex and DThread are internal to the Symbian platform.

71

This fault is raised in debug builds only.

The fault is raised when a semaphore (DSemaphore) is signalled and the current thread (DThread) is not ready to run.

Note: DSemaphore and DThread are internal to the Symbian platform.

72

This fault is raised in debug builds only.

The fault is raised when a wait is called on a semaphore (DSemaphore::Wait()) and the current thread (DThread) is not ready to run.

Note: DSemaphore and DThread are internal to the Symbian platform.

73

This fault is raised in debug builds only.

This fault is raised when a wait is called on a semaphore (DSemaphore::Wait()), and the current thread (DThread) is blocked, waiting on another object.

Note: DSemaphore and DThread are internal to the Symbian platform.

74

This fault is raised in debug builds only.

This fault is raised during kernel heap manipulation.

75

This fault is raised by the DLibrary destructor if the number of user references on the library, which is equal to the number of handles on the library opened by the process or by any of its threads, is not zero.

Note: DLibrary is internal to the Symbian platform.

76

This fault is raised by DProcess::Release() if the number of dynamically loaded code segments attached to this process is not zero.

Note: the code segments referred to are only those corresponding to DLLs that have been explicitly loaded.

Note: DProcess is internal to the Symbian platform.

77

This fault is raised during the creation of a code segment if a process data address is invalid.

78

This fault is raised in debug builds only.

This fault is raised when attaching a process to a code segment (DCodeSeg::SetAttachProcess()).

The fault occurs if the code segment's iExeCodeSeg field already points to some process's EXE code segment.

Note: DCodeSeg and DProcess are internal to the Symbian platform.

79

This fault is raised when attaching a process to a code segment (DCodeSeg::SetAttachProcess()).

The fault occurs if a process (DProcess) has already been attached to this code segment.

Note: DCodeSeg and DProcess are internal to the Symbian platform.

80

This fault is raised when an essential system thread terminates. Such a thread is flagged as being permanent (KThreadFlagSystemPermanent).

81

This fault is raised in debug builds only.

This fault is raised if creation of the just-in-time handler (DJitCrashHandler) fails during the third phase of system initialisation (Asic::Init3()).

Note: DJitCrashHandler is internal to the Symbian platform.

82

Not used.

83

This fault is raised in debug builds only.

This fault is raised by Kern::ProcessFromId() if the process container mutex is not held by the current thread.

84

This fault is raised in debug builds only.

This fault is raised by Kern::ThreadFromId() if the thread container mutex is not held by the current thread.

85

Not used.

86

Not used.

87

This fault is raised in debug builds only.

This fault is raised when an access-counted event handler callback object, DKernelEventHandler, is created with a NULL TCallback object.

88

This fault is raised in debug builds only.

This fault is raised if attempting to wait on a mutex (DMutex::Wait()) that has been created with an order value that violates the rules that prevent deadlock prevention.

89

This fault is raised in debug builds only.

This fault is raised when waiting on a condition variable object (DCondVar) if the current thread is not ready to run.

Note: DCondVar is internal to the Symbian platform.

90

This fault is raised in debug builds only.

This fault is raised when waiting on a condition variable object (DCondVar) if the current (Nanokernel) thread is not in a recognised state.

Note: DCondVar is internal to the Symbian platform.

91

This fault is raised in debug builds only.

This fault is raised when waiting on a condition variable object (DCondVar) if the current (the Symbian platform) thread is not in a recognised state.

Note: DCondVar is internal to the Symbian platform.

92

This fault is raised when attempting to unblock a thread in a call to DCondVar::UnBlockThread() if the thread state indicates that it is not suspended waiting on the DCondVar object.

93

Not used.

94

This fault is raised in a call to Kern::ThreadKill() if an attempt is being made to kill a non-user thread that is also not the currently running thread.