## Symbian OS Trace32 Support

After installing all necessary software such as Perl, JTAG, compilers, Devkits and SDKs and creating your project, you will need to define a Debug launch configuration for your project. For this example, we will define a Trace32 launch configuration. For new projects that do not have a launch configuration, a New Launch Configuration Wizard will appear and allow you to define settings.

Launch configurations define a collection of settings used to tell the debugger how to start a debug session. The launch configuration panes for creating a Trace32 stop mode debug launch configuration are described below. Figure 1 is an example of the Trace32 Debug launch configuration window and the related panes accessible in a tabbed format. Click Debug after all the preference panels have been set. The Debug window closes and the Carbide.c++ debugger begins a debugging session using the new configuration. The next time you click the Debug icon, this debug launch configuration is used to start a debug session.

#### To open the Debug window

- Select the Project in the C/C++ Project view that you want to debug
- Select the Run > Debug... menu item to display the Debug launch configuration window (figure 1)
- Define a debug launch configuration to communicate with the protocol interface

The panes include:

- The Main tab (Figure 1) defines the project to be launched. Enter the name of the project in the Project field, and the executable name in the Executable field.
- The Connection tab (Figure 2) defines the Trace32 executable, configuration file and initialization script.
- The Debugger tab (Figure3) defines debug configurations, such as entry point to begin debugging and target options.
- The ROM Image tab (Figure 4) allows you to define startup options and ROM image download information.
- The Executables tab (Figure 5) allows you to specify which executables that you want to debug that are part of the project.
- The Source tab (Figure 6) (standard CDT page) defines the location of source files used to display source when debugging an application. By default, these settings are derived from the associated project's build path. You may override these settings here.
- The Common tab (Figure 7) (standard CDT page) defines general information about the launch configuration. You may choose to store the launch configuration in a specific file.

## Main

Figure 1 - Trace32 Launch Configuration Settings - Main Tab

##### Table 1. Debug Launch configuration window—Main tab items

Item | Explanation
--- | ---
Project | The project to associate with this debug launch configuration. Click Browse to select a different project.
Executable | This is the name of the executable that is linked to the project. Click Browse to select a different executable.

## Connection

Figure 2 - Trace32 Launch Configuration Settings - Connection Tab

##### Table 2. Launch configuration window—Connection tab items

Item | Explanation
--- | ---
Trace32 Executable | Enter or browse to the Trace32 executable to be launched for debugging. By default, it will be set to c:\t32\t32marm.exe. The default installation path is c:\t32.
Trace32 Configuration File | Enter or browse to the Trace32 Configuration File. The default configuration file is a Carbide specific T32 config file (config_carbide.t32). Default location is C:\Program Files\Nokia\Carbide.c++ v2.0.x\plugins\com.nokia.carbide.cpp.support_ <version>\Symbian_Support\Trace32\ You can modify the config_carbide.t32 file to support UDP (User Datagram Protocol) connections by adding the following lines: RCL=NETASSIST PACKLEN=1024 PORT=20000
Trace32 Initialization Script | Enter or browse to the Trace32 initialization cmm script file. This script will be run in Trace32 after connecting to Trace32. Users are expected to have their own scripts for the targets they are using. The cmm files are provided here for H2 and H4 boards: C:\Program Files\Nokia\Carbide.c++ v2.0.x\plugins\com.nokia.carbide.cpp.support_ <version>>\Symbian_Support\Trace32\cmm_scripts\H2 & H4
View Messages between Carbide and Trace32 | The View Messages between Carbide and Trace32 check box allows you to specify whether or not the debug protocol messages between Carbide and T32 should be logged in a T32 Communication Log console window.

## Debugger

Figure 3 - Trace32 Launch Configuration Settings - Debugger Tab

##### Table 3. Launch configuration window—Debugger tab items

Item | Explanation
--- | ---
Break at entry point | Select the check box and specify an entry point in the text box if you want the debugger to break at an entry point in the program being debugged. The default is set to E32Main since most applications entry point is E32Main. But you can specify a function name in the program being debugged.
Soft attach | Select to attach to a target without restarting the target device. This is very handy when the device uses flash, memory cards, or other external media for booting purposes and when it's not possible to configure the device to restart by the debugger. With soft attach, the debugger doesn't change the state of the target device. The debugger halts the target after attaching to the target to show the current PC location. User can preform normal debugging operations from then onwards.
Debug from start address | Select this option to stop the target at the start address once the target initialization is done and the OS is downloaded; if you have chosen to download the OS.
Run from start address | Select this option to run the target from the start address once the target initialization is done.
Start Address (hex) | Specify the memory address that the Carbide debugger will use to set the program counter to start the target. This is typically the start address of the Symbian OS.
Reset target at the start of each debug session | Select this check box to reset the target at the start of each debug session. For Trace32, the reset is typically done as part of the CMM script file. Consult board specifications to determine if resetting is necessary.
Target Processor | Select a target processor from the drop down list of all supported processors. By default the field is set to Generic. When you select a processor, Carbide determines whether the debugger provides ARMV5 or ARMV6 support.
Target Initialization File | Select the check box and enter or browse to the target initialization file. Typically, this initialization file is used to initialize the target after connecting. When using Trace32, the initialization is done in the CMM script file.
Memory Configuration File | Select the check box and enter or browse to the memory configuration file. The Carbide debugger uses this configuration file to determine which memory is accessible, readable, and writable on the target.
Default Instruction set | The following options are available: Auto (examine code at current PC location) Arm (32 bit) Thumb (16 bit) Arm is the default. It is used by the debugger to determine the processor mode when it cannot be determined otherwise. This can happen at addresses for which there is no symbolic information. The debugger uses the mode when setting breakpoints and disassembling code.

## ROM Image

Figure 4 - Trace32 Launch Configuration Settings - ROM Image Tab

##### Table 4. Launch configuration window—ROM Image tab items

Item | Explanation
--- | ---
Parse Rom Log File | Check this option to parse the ROM log file.
Symbian Rom Log File | Enter or browse to the Rom log file that is generated when the Symbian OS image is built. This is necessary for debugging any Symbian OS module.
Symbian Epoc32 Directory | Enter or browse to the epoc32 directory for the Symbian OS kit that is being targeted for debugging. This is necessary for the debugger to resolve the full paths for each module in the log file since the log file does not contain the full paths.
Log unresolved modules | Check this option to log unresolved modules. If the actual binary in the log file doesn’t exist on the PC, then a warning message will be logged in a Rom Log console window.
Debug non-XIP executables | Check this option to target non-XIP executables. This allows the debugger to target a non-XIP module whenever it’s loaded.
Download Rom Image | Check this box to enable downloading.
Symbian Rom Image | Enter or browse to the Symbian OS image (.img file) that will be downloaded onto the target at the specified download address.
Download Address (hex) | Specify the address where the image is to be downloaded. This address is target-specific. The address should be in hexadecimal format with the 0x prefix.
Same as start address | Check this option to make the download address the same as the start address.
Ask for download at the start of each debug session | Select this option to prompt you to download the image at the start of the debug session.

## Executables

The Executables pane specifies which executables to debug with your project based on the chosen rule. The Executables pane gives you project level control over the executables associated with it. The pane shows all the executables in the workspace or those imported into the Executables view from outside the workspace that can be debugged by this project. See the Executables view for information on controlling executables from the workspace.

Figure 5 - Trace32 Launch Configuration Settings - Executables Tab

##### Table 5. Executable pane —items

Item | Explanation
--- | ---
Load symbols for these executables and target them for debugging | Select the rule which govern the executable support used by this project for debugging purposes. The options include: Executables in the workspace from this SDK — shows all executables in the workspace built using the specified SDK. This is the default setting. Executables built by this project — shows only the executables built by this project using the specified SDK Executables selected below — shows only the executables chosen by the user. Initial list display uses the All Executables listing. All executables (slows launch) — shows all the executables in the workspace regardless of which SDK created them. Selecting this option will slow down Carbide launches as the list is populated.
Executables list | Shows all the executables associated with this project.
Add... | Opens the Select an executable file dialog which can locate and select executable files and add them to the project's executables list.
Select All | Enables all the executables in the list for debugging.
Unselect All | Disables all the executables in the list from debugging.

## Source

Figure 6 - Trace32 Launch Configuration Settings - Source Tab

##### Table 6. Launch configuration window—Source tab items

Item | Explanation
--- | ---
Source Lookup Path | Allows you to add locations to search for source files. You can arrange the list by selecting the type of source path and clicking Up and Down buttons. Select a type of source and click Remove button to delete the item from the list.
Search for duplicate source files on the path | Enable this option to search for duplicate source files on source paths listed.

## Common

Figure 7 - Trace32 Launch Configuration Settings - Common Tab

##### Table 7. Launch configuration window—Common tab items

Item | Explanation
--- | ---
Save As | Allows you to save the launch configuration as a file local to the project or as shared file. For a shared file you can enter or browse to a folder within an existing project directory.
Display in favorites menu | Select menu for launch configuration to appear.
Console Encoding | Select the character set to use to display information in the console window.
Standard Input and Output | Allocate input and output to console and/or specified file. If a file is selected, you can select Append option to append data to selected file.
Launch in background | Enable this option to launch debug operation in a background process.

##### Related concepts

- Launch Configurations
- About the Debugger

##### Related tasks

- Creating a Launch Configuration

##### Related references

- Symbian OS Sophia Target Interface Support
- Debug Perspective
- Debug View