Книга: Microsoft Windows Embedded CE 6.0 Exam Preparation Kit
Debugger Extension Commands (CEDebugX)
Debugger Extension Commands (CEDebugX)
In addition to the regular debugger commands, the Target Control service provides the debugger with a debugger commands extension (CEDebugX) to increase the efficiency of kernel and application debugging. This extension provides additional features to detect memory leaks and deadlocks and diagnose the overall health of the system. The additional commands are accessible through the target control shell and start with an exclamation point (!).
To use CEDebugX, you need to break into the Kernel Debugger by using the break command in the target control shell or the Break All command on the Target menu in Visual Studio. Among other things, you can then enter a !diagnose all command to identify the potential reason for a failure, such as heap corruption, deadlocks, or memory starvation. On a healthy system, the CEDebugX should detect no any issues, as illustrated in Figure 4-4.
Figure 4-4 Diagnosing a run-time image with CEDebugX
The !diagnose all command runs the following diagnostics:
? Heap Diagnoses all the heap objects of all processes on the system to identify potential content corruption.
? Exception Diagnoses an exception that occurs on the system and is able to provide details on the exception, such as process and thread ID, and PC address at the exception time.
? Memory Diagnoses the system memory to identify potential memory corruptions and low memory conditions.
? Deadlock Diagnoses the thread states and system objects (see Chapter 3 for more details on thread synchronization). It can provide a list of system objects and thread IDs that generated the deadlock.
? Starvation Diagnoses threads and system objects to identify potential thread starvation. Starvation occurs when a thread is never scheduled on the system by the scheduler because the scheduler is busy with higher-priority threads.
- Target Control Commands
- Appendix A. Detailed explanations of special commands
- Commands
- 5.2.3 In-Circuit Debuggers
- Use Essential Commands from the
- Using Basic Print Commands
- Using Commands in the ftpaccess File to Configure wu-ftpd
- Configure Commands Directed Toward the cdpath
- Using Commands for Server Administration
- Using DNS Security Extensions
- Basic Commands
- Combining Commands