4.8.9. Using ranges and masks with hardware breakpoints

Where supported by your target hardware, you can qualify the location and value match entries using options available from the right-arrow menu.

Click the right-arrow at the side of the Location data field to display the Address Range and Mask menu. Use options from this menu to specify an expression range or mask a group of instructions:

Click the right-arrow at the side of the Value Match data field to display the Value Range and Mask menu. Use options from this menu to test a range of values or mask a range of data values:

Note

These menu options are only available where supported by your debug target and if you have specified a hardware Breakpoint Type.

Choose from the available options to set up your hardware breakpoint:

Address/Value Range

Enter the start address, or data value, for the breakpoint then click this option to specify a range, for example the address range 0x800FF..0x80A00 (see Specifying address ranges). The separators .. are automatically inserted for you.

Address/Value Range by Length

Enter the start address, or data value, for the breakpoint then click this option to specify a range by length, for example the address range 0x800FF..+0x1111 (see Specifying address ranges). The separators ..+ are automatically inserted for you.

Address/Value Mask

Enter the address, or data value, for the breakpoint then click this option to specify a mask. RealView Debugger inserts the mask for you, for example 0x800FF $MASK$=0xFFFF. Change this mask as required.

The mask is a bitwise-AND mask applied to the specified address, or data value, for example given the location 0x0111 and a mask 0x1001 the result is 0x0001.

The breakpoint triggers when the address, or data value, matches the given value after masking.

NOT Address/Value Compare

Enter the address, or data value, for the breakpoint then click this option to specify a NOT operation, for example $NOT$ 0x800FF.

Similarly, use this option to specify a range of addresses, or data values, to ignore, for example $NOT$ 0x0500..+0x0100.

Autocomplete Range

Enter a symbol and then click this option to compute the end-of-range address based on the symbol size. For example, if you enter a function then the autocompleted range is from the start to the end of the function. Similarly, enter a global variable to see the end-of-range address autocompleted as the variable storage address plus variable size.

Note

Many combinations of range, or mask, options are permitted. However, mixing range and mask generates a warning message to say that this is not permitted.

Copyright © 2002-2005 ARM Limited. All rights reserved.ARM DUI 0153G
Non-Confidential