Debug/Auxiliary (Windows Embedded CE 6.0)
1/6/2010
The Bluetooth stack layer has unified console/debug output stubs used throughout the stack. Console is a thread that only runs in the debug version of the stack. It provides a command-line monitor to access stack information. The format of a command is as follows.
<layer name> <layer-specific commands>
The thread extracts the layer name then dispatches the rest of the command to the appropriate layer. Each layer exports one function that parses the rest of the command and responds appropriately. The following function is exported by every layer.
int layer_ProcessConsoleCommand (WCHAR *pString);
Each layer must understand command help and print out a list of available commands.
void DumpBuff (unsigned int cMask, unsigned char *lpBuffer, unsigned int cBuffer);
void DebugOut (unsigned int cMask, WCHAR *lpszFormat, ...);
void DebugInitialize (void);
Debugger facilities center around a debug mask that is initialized in the following manner.
[Software\Microsoft\Bluetooth\Debug]
"mask" = dword:0
"console"=dword:0
The following table shows the available debug layers. The mask registry value is a union of these.
Element | Hex code |
---|---|
DEBUG_ERROR |
0x00000001 |
DEBUG_WARN |
0x00000002 |
DEBUG_OUTPUT |
0x00000004 |
DEBUG_SHELL_ALL |
0x00000030 |
DEBUG_SHELL_INIT |
0x00000010 |
DEBUG_SHELL_TRACE |
0x00000020 |
DEBUG_HCI_ALL |
0x00000f00 |
DEBUG_HCI_INIT |
0x00000100 |
DEBUG_HCI_TRACE |
0x00000200 |
DEBUG_HCI_DUMP |
0x00000040 |
DEBUG_HCI_PACKETS |
0x00000400 |
DEBUG_HCI_CALLBACK |
0x00000800 |
DEBUG_HCI_TRANSPORT |
0x00000080 |
DEBUG_L2CAP_ALL |
0x000f0000 |
DEBUG_L2CAP_INIT |
0x00010000 |
DEBUG_L2CAP_TRACE |
0x00020000 |
DEBUG_L2CAP_PACKETS |
0x00040000 |
DEBUG_L2CAP_CALLBACK |
0x00080000 |
DEBUG_PAN_ALL |
0x0000f000 |
DEBUG_PAN_INIT |
0x00001000 |
DEBUG_PAN_TRACE |
0x00002000 |
DEBUG_PAN_PACKETS |
0x00004000 |
DEBUG_PAN_CALLBACK |
0x00008000 |
DEBUG_RFCOMM_ALL |
0x00f00000 |
DEBUG_RFCOMM_INIT |
0x00100000 |
DEBUG_RFCOMM_TRACE |
0x00200000 |
DEBUG_RFCOMM_PACKETS |
0x00400000 |
DEBUG_RFCOMM_CALLBACK |
0x00800000 |
DEBUG_SDP_ALL |
0x0f000000 |
DEBUG_SDP_INIT |
0x01000000 |
DEBUG_SDP_TRACE |
0x02000000 |
DEBUG_SDP_PACKETS |
0x04000000 |
DEBUG_SDP_CALLBACK |
0x08000000 |
DEBUG_TDI_ALL |
0x00f00000 |
DEBUG_TDI_INIT |
0x00100000 |
DEBUG_TDI_TRACE |
0x00200000 |
DEBUG_TDI_PACKETS |
0x00400000 |
DEBUG_TDI_CALLBACK |
0x00800000 |
The message is printed if cMask, provided in DebugOut or DebugDump, intersects with the mask in the registry key.
The following table shows the available output modes. The console registry value is a union of these.
Element | Hex code |
---|---|
OUTPUT_MODE_DEBUG |
0 |
OUTPUT_MODE_CONSOLE |
1 |
OUTPUT_MODE_FILE |
2 |