Symbian OS Data

## Symbian OS Data view

The Symbian OS Data view displays the processes and threads for the suspended debug session based on the selection in the Debug view. Read-only data is displayed for ARM build configurations. To open the Symbian OS Data view select Window > Show View > Symbian OS Data when the Debug perspective is visible or select Window > Show View > Other..., then expand the Carbide.c++ folder and select Symbian OS Data when the Carbide C/C++ perspective is visible. Click Ok to display the Symbian OS Data window (Figure 1).

NOTE The Symbian OS Data view works with the debugger and will only display data during a live debug session. The Symbian OS Data view is not supported for emulator debugging, and will not show anything during emulator debug.

The Symbian OS Data view reveals kernel data in the Symbian OS running on the device being debugged. The kernel data displayed is always that of the device with the currently selected thread or process in Debug view. If you are debugging two devices at the same time, the content of the view will change when focus is switched from a thread on one device to a thread on another device. The kernel data includes more than just processes and threads.

For the stop mode debugger and the crash debugger, all the data listed above is supported. For the Application and System TRK debuggers, the chunks and libraries views are not supported. The Symbian OS Data view is not supported for the emulator debugger and will show nothing during an emulator debug session. During a stop mode debug session or a TRK debug session, you are able to select a process or a thread in the Symbian OS Data view and attach the debugger to it for source level debugging if the binary is listed in the Executables view. Binaries listed in the Executable view can be source level debugged. Binaries not listed in the Executables view can only be assembly code debugged in the Disassembly view.

NOTE Any executable must be included in the Executables view before it can be debugged.

When the Time interval for auto-refreshing OS View option is enabled (which is on by default except for crash debugger), the data in the Symbian OS Data view will be auto-refreshed. Note that "auto-refresh" has a different meaning in different debuggers. During a stop mode debug session, the view will refresh data whenever the debugged program on the device is stopped and shows data as stale (greyed out) when the program is running. During a TRK debug session, the View will refresh data at a time interval regardless of whether the debugged program is stopped or not. The time interval is specified by an option in the Carbide.c++ global preference panel, which is five seconds by default.

When auto-refresh is turned off, the debugger will not automatically refresh data in the View and will show the data as stale (greyed out). However you can manually refresh the data by clicking on the "Refresh" button in the View. Usually you may want to turn off the auto-refresh if you think it is slowing down your debug operations such as stepping.

### Symbian OS Data pages

The Symbian OS Data view consists of five tabs. Each tabbed pane is described below. In all panes, the Name Filter field is a standard Eclipse UI control that allows you to find an item by filtering out items by name using wildcards (*, ?) and camel case naming conventions. Camel case refers to using mixed case multiple names merged together in coding like SecInvInit and DosServer. In all panes, you can select an item and view its properties (attributes). In panes with columns you can click a column title to toggle between ascending and descending sorting.

Data to be viewed includes:

- Overview
- Processes
- Threads
- Chunks
- Libraries

NOTE Information for the Chunks and Libraries tabs is not available when debugging with the TRK debug agent.

#### Overview Tab

This tab (shown in Figure 1) provides a tree view of ownership of all processes, threads, and chunks in the OS. In contrast, the other tabs provide a flat list of corresponding kernel objects such as process, thread, chunk, library, etc.

Figure 1. Symbian OS Data view

##### Table 1 - Symbian OS Data view toolbar buttons

Button | Icon | Function
--- | --- | ---
Refresh data |  | Click this button to force a refresh of data in the view. Use the Carbide.c++ Debugger preference panel Time interval for auto-refreshing OS View option to control the automatic refreshing of data.
Enable/disable auto-refresh |  | Click this button to turn on/off auto refresh of data.
Debug process or thread |  | Click the Debug button to attach to the process and debug the selected process or thread. Or right-click an item and choose Debug. This applies to both TRK (run mode) and TCF (stop mode).
Properties |  | Click this button to show properties of currently selected item in the Properties view. Or right-click an item and choose Properties.
Timer |  | Click this button to define the time interval for auto-refreshing data. This applies to run mode debugging only.
Collapse All |  | Click the Collaps All command to collapse all of the currently elements in the view.

#### Processes

The Processes tab (Figure 2) provides a flat list of corresponding kernel objects. Click a column title to sort the list by the title attribute in alternating ascending and descending order. For example, you may choose to sort the process list by Name, ID, or by Priority.

Figure 2. Processes Pane of Symbian OS View

The process(es) being debugged will be shown in bold font. You can debug (attach debugger to) any process in the Processes tab by selecting it and clicking the "Debug" button or just by double clicking on it. In that case a new process item will show up in the Debug View if the process is not being debugged. Otherwise, you will get a message saying it's already under debug.

#### Threads

The Threads tab (Figure 3) provides a flat list of corresponding kernel objects. The list will display “sortable” attributes of that type of object in columns. The “sortable attribute” means you can sort the list by that attribute. For example, you may want to sort the list by the owning process name. Sort the list of any column by clicking on the column header. The thread(s) being debugged will be shown in bold font.

NOTE You can debug (attach debugger to) any thread in the Thread tab by double clicking on it or selecting it and clicking the Debug button. In that case, a new thread item will show up in Debug view if the thread is not being debugged.

Figure 3. Threads Pane of Symbian OS View

#### Chunks

Chunks are an area of contiguous linear memory. It is the unit of memory allocation where a region of RAM is mapped into contiguous logical addresses. Chunks are allocated during boot for such things as the Kernel's data and stack.

The Chunks tab (Figure 4) provides a flat list of corresponding kernel objects. The list will display “sortable” attributes of that type of object in columns. The “sortable attribute” means you can sort the list by that attribute. For example, you may want to sort the list by the owning process name. Sort the list of any column by clicking on the column header.

NOTE Chunks data is not available during TRK debugging.

Figure 4. Chunks Pane of Symbian OS View

#### Libraries Tab

The Libraries pane (Figure 5) in the Symbian OS view provides information on libraries in the Symbian OS residing on the target.

NOTE Library data is not available during TRK debugging.

Figure 5. Libraries Pane of Symbian OS View

### Attaching to a Process

If you double click on a thread item in the Thread tab, or right-click and choose Debug, the owning process of the thread will be attached. The thread with an attached process will appear in bold. You can also select a thread and click the bug icon in the Symbian OS Data toolbar. You can also view properties for the attached process by clicking the "Show properties of the selected item" icon () in the Symbian OS Data toolbar or right-click the thread and choose Properties.

NOTE If an executable is not part of a project in the workspace use the Executables view to import an executable to make it visible to the debugger. Once included in the Executables list, the symbolics for that executable can be loaded and breakpoints resolved and hit. Open a source file in an editor view or use the Breakpoints view to verify that the executable breakpoints have been resolved.

IMPORTANT In stop mode debugging when debugging multiple processes at the same time, selecting a process in the Debug pane and clicking Terminate disconnects the attached process on the board, leaving all other processes running. It does not terminate the debug session. However, if there is only one debug process when you click Terminate the CPU is suspended until the next debug session.

WARNING Detaching from a system process or any process not initiated by the program you are attempting to debug may cause the device to stop working, forcing a restart of the device.

##### Other references

- Debug view
- Setting Symbian OS View Refresh Rate