3.3.2. Optional windows

The windows described in this section are all available by selecting appropriate options in the View menu.

Backtrace window

The Backtrace window displays current backtrace information about your program. Use the Backtrace window to:

  • show disassembled code for the current procedure

  • show a list of local variables for the current procedure

  • set or remove breakpoints.

Breakpoints window

The Breakpoints window displays a list of all breakpoints set in your image. The actual breakpoint is displayed in the right-hand pane. If the breakpoint is on a line of code, the relevant source file is shown in the left-hand pane.

Use the Breakpoints window to:

  • show source/disassembled code

  • set, edit, or remove breakpoints.

Debugger Internals window

The Debugger Internals window displays some of the internal variables used by the ARM Debugger. You can use this window to examine the values of the following variables, and to change the values of those not marked read-only:

$clock

Contains the number of microseconds elapsed since the application program began execution. This value is based on the ARMulator clock speed setting, and is unavailable if that speed is set to 0.00 (see also ARMulator configuration). This variable is read-only.

$cmdline

Contains the argument string for the image being debugged.

$echo

Non-zero if commands from obeyed files should be echoed (initially set to 0).

Obeyed files are text files that contain lists of armsd commands. Refer to the description of the obey command in Chapter 7 ARM Symbolic Debugger in the ARM Software Development Toolkit Reference Guide for more information.

$examine_lines

Contains the default number of lines for the examine command (initially set to 8).

$int_format

Contains the default format for displaying integer values.

$uint_format

Contains the default format for displaying unsigned integer values.

$float_format

Contains the default format for displaying floating-point values.

$sbyte_format

Contains the default format for displaying signed byte values.

$ubyte_format

Contains the default format for displaying unsigned byte values.

$string_format

Contains the default format for displaying string values.

$complex_format

Contains the default format for displaying complex values.

$fpresult

Contains the floating-point value returned by last called function (junk if none, or if a floating-point value was not returned). $fpresult returns a result only if the image has been build for hardware floating-point. If the image is built for software floating-point, it returns zero. This variable is read-only.

$inputbase

Contains the base for input of integer constants (initially set to 10).

$list_lines

Contains the default number of lines for the list command (initially set to 16).

$pr_linelength

Contains the default number of characters displayed on a single line (initially set to 72).

$rdi_log

Sets RDI logging (see Table 3.1).

Table 3.1. RDI logging

Bit 1

Bit 0

Meaning

0

0

Off

0

1

RDI on

1

0

Device Driver Logging on

1

1

RDI and Device Logging on

You can set these bits of the $rdi_log internal variable from the Debugger Internals window. For more information see RDI Log window and Remote debug information.

$result

Contains the integer result returned by last called function (junk if none, or if an integer result was not returned). This variable is read-only.

$sourcedir

Contains the directory name of the directory containing source code for the program being debugged.

$statistics

Contains any statistics that the ARMulator has been keeping. You can examine the contents of this variable by clicking on statistics in the Debugger Internals window. This variable is read-only.

$statistics_inc

Not available in the debugger internals window. This variable can be used in the command window.

$statistics_inc_w

Similar to $statistics, but outputs the difference between the current statistics and the point at which you asked for the $statistics_inc_w window. To create a $statistics_inc_w window, select this item, right click to display the pop-up menu, and select Indirect through item. This variable is read-only and is not available in the command window.

$top_of_memory

If you are using an EmbeddedICE interface, set this variable to the total amount of memory normally on your development board. If you add more memory to the board, change this variable to reflect the new amount of memory.

$type_lines

Contains the default number of lines for the type command (initially set to 10).

$vector_catch

Applies to ARMulator and EmbeddedICE only. It sets the exceptions that result in control passing back to the debugger. The default value is %RUsPDAifE. An uppercase letter indicates an exception is intercepted:

R

reset

U

undefined instruction

S

SWI

P

prefetch abort

D

data abort

A

address

I

normal interrupt request (IRQ)

F

fast interrupt request (FIQ)

E

unused

Disassembly window

The Disassembly window displays disassembled code interpreted from a specified area of memory. Memory addresses are listed in the left-hand pane and disassembled code is displayed in the right-hand pane. You can view ARM code, Thumb code, or both.

Use the Disassembly window to:

  • go to another area of memory

  • change the disassembly mode to ARM, Thumb, or Mixed

  • set, edit, or remove breakpoints.

Note

More than one Disassembly window can be active at a time.

For details of displaying disassembled code, see Displaying disassembled and interleaved code.

Expression window

The Expression window displays the values of selected variables and/or registers.

Use the Expression window to:

  • change the format of selected items, or all items

  • edit or delete expressions

  • display the section of memory pointed to by the contents of a variable.

For more information on displaying variable information, see Working with variables.

Function Names window

The Function Names window lists the functions that are part of your program.

Use the Function Names window to:

  • display a selected function as source code

  • set, edit, or remove a breakpoint on a function.

Locals/Globals window

The Locals window (Figure 3.6) displays a list of variables currently in scope. The Globals window displays a list of global variables. The variable name is displayed in the left-hand pane, the value is displayed in the right-hand pane.

Figure 3.6. Locals window

Locals window

Use the Locals/Globals window to:

  • change the content of a variable (double click on it)

  • display the section of memory pointed to by a variable

  • change the format of the values displayed by line, or for the entire window (if the format of a line is changed, it is no longer affected by changing the format of the window)

  • set, edit, or remove a watchpoint on a variable

  • double click on an item to expand a structure (the details are displayed in another variable window).

As you step through the program, the variable values are updated.

For more information on displaying variable information, see Working with variables.

Low Level Symbols window

The Low Level Symbols window displays a list of all the low level symbols in your program.

Use the Low Level Symbols window to:

  • display the memory pointed to by the selected symbol

  • display the source/disassembled code pointed to by the selected symbol

  • set, edit, or remove a breakpoint on the line of code pointed to by the selected symbol.

You can display the low level symbols in either name or address order. Right click in the window to display the Low Level Symbols window menu and select Sort Symbols by… to toggle between the two settings.

Memory window

The Memory window displays the contents of memory at a specified address. Addresses are listed in the left-hand pane, and the memory content is displayed in the right-hand pane.

Use the Memory window to:

  • display other areas of memory by scrolling or specifying an address

  • set, edit, or remove a watchpoint

  • change the contents of memory (double click on an address).

You can have multiple Memory windows open at any time.

Registers window

The Registers window displays the registers corresponding to the mode named at the top of the window, with the contents displayed in the right-hand pane. You can double click on an item to modify the value in the register.

Use the Registers window to:

  • display the contents of the register memory

  • display the memory pointed to by the selected register

  • edit the contents of a register

  • set, edit, or remove a watchpoint on a register.

Note

Multiple register mode windows can be open at any one time, but you cannot open more than one window for each processor mode. For example, you can open no more than one FIQ register window at a time.

RDI Log window

The RDI Log window displays the low level communication messages between the ARM Debugger and the target processor.

Note

This facility is not normally enabled. It must be specifically enabled when the RDI is compiled. In addition, the debugger internal variable $rdi_log must be non-zero.

For more information on RDI, see Remote debug information.

Search Paths window

The Search Paths window displays the search paths of the image currently being debugged. You can remove a search path from this window using the Delete key.

Source Files List window

The Source Files List window displays a list of all source files that are part of the loaded image.

Use the Source Files List window to select a source file that is displayed in its own Source File window.

Source File window

The Source File window displays the contents of the source file named at the top of the window. Line numbers are displayed in the left-hand pane, code in the right-hand pane.

Use the Source File window to:

  • search for a line of code by line number

  • set, edit, or remove breakpoints on a line of code

  • toggle the interleaving of source and disassembly.

For more information on displaying source files, see Working with source files.

Watchpoints window

The Watchpoints window displays a list of all watchpoints.

Use the Watchpoints window to:

  • delete a watchpoint

  • edit a watchpoint.

Window-specific menus

Each of the ARM Debugger desktop windows displays a window-specific menu when you click the secondary mouse button over the window. The secondary button is typically the right mouse button. Item-specific options require that you position the cursor over an item in the window before they are activated.

Each of the window-specific menus is described in the online help for that window.

Copyright © 1997, 1998 ARM Limited. All rights reserved.ARM DUI 0040D
Non-Confidential