1.3.44 hbreak

Sets a hardware execution breakpoint at a specific location. You can also specify a conditional breakpoint by using an if statement that stops only when the conditional expression evaluates to true.

This command records the ID of the breakpoint in a new debugger variable, $n, where n is a number. You can use this variable, in a script, to delete or modify the breakpoint behavior. If $n is the last or second-to-last debugger variable, then you can also access the ID using $ or $$, respectively.

Note:

The number of hardware breakpoints are usually limited. If you run out of hardware breakpoints, then delete or disable one that you no longer use.

Note:

Breakpoints that are set within a shared object or kernel module become pending when the shared object or kernel module is unloaded.

You can use info breakpoints capabilities to display a list of parameters that you can use with breakpoint commands for the current connection.

Syntax

hbreak [-d] [-p] [[filename:]location|*address] [thread|core number...] [vmid vmid] [context contextid] [if expression]

Where:

-d

Disables the breakpoint immediately after creation.

-p

Specifies whether or not the resolution of an unrecognized breakpoint location results in a pending breakpoint being created.

filename

Specifies the file.

location

Specifies the location:

line_num

Is a line number.

function

Is a function name.

label

Is a label name.

+offset  | -offset

Specifies the line offset from the current location.

address

Specifies the address. This can be either an address or an expression that evaluates to an address.

number

Specifies one or more threads or processors to apply the breakpoint to. You can use  $thread to refer to the current thread. If number is not specified then all threads are affected.

vmid

Specifies the Virtual Machine ID (VMID) to apply the breakpoint to. This can be either an integer or an expression that evaluates to an integer.

contextid

Specifies the context ID to apply the breakpoint to. This can be either an integer or an expression that evaluates to an integer. You can only use the context parameter if your hardware supports it and your application makes use of the CONTEXTIDR register. For more information, see CONTEXTIDR in the ARM Architecture Reference Manual.

expression

Specifies an expression that is evaluated when the breakpoint is hit.

If no arguments are specified, then a hardware breakpoint is set at the current PC.

Example 1-47 Examples

hbreak *0x8000                # Set breakpoint at address 0x8000
hbreak *0x8000 thread $thread # Set breakpoint at address 0x8000 on current thread
hbreak *0x8000 thread 1 3     # Set breakpoint at address 0x8000 on threads 1 and 3
hbreak main                   # Set breakpoint at address of main()
hbreak SVC_Handler            # Set breakpoint at address of label SVC_Handler
hbreak +1                     # Set breakpoint at address of next source line
hbreak my_File.c:main         # Set breakpoint at address of main() in my_File.c
hbreak my_File.c:8            # Set breakpoint at address of line 8 in my_File.c
hbreak function1 if x>0       # Set conditional breakpoint that stops when x>0
hbreak context 257 0x80000000 # Set conditional breakpoint at address 0x80000000 
                              # that stops when CONTEXTIDR=10
Non-ConfidentialPDF file icon PDF versionARM DUI0452Z
Copyright © 2010-2016 ARM Limited or its affiliates. All rights reserved.