Sets a hardware execution breakpoint at a specific location and deletes the breakpoint when it is hit. You can also specify a conditional breakpoint by using an
if statement that stops only when the conditional expression evaluates to
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
NoteThe number of hardware breakpoints are usually limited. If you run out of hardware breakpoints, then delete or disable one that you no longer use.
NoteBreakpoints 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.
thbreak [-d] [-p] [[<filename>:]<location>|*<address>] [[thread|core] <number>...] [vmid <vmid>] [context <contextid>] [if <expression>]
Disables the breakpoint immediately after creation.
Specifies whether or not the resolution of an unrecognized breakpoint location results in a pending breakpoint being created.
Specifies the file.
Specifies the location:
Is a line number.
Is a function name.
Is a label name.
Specifies the line offset from the current location.
Specifies one or more threads or processors to apply the breakpoint to. You can use
$threadto refer to the current thread. If
<number>is not specified then all threads are affected.
Specifies the address. This can be either an address or an expression that evaluates to an address.
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.
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
CONTEXTIDRregister. For more information, see
CONTEXTIDRin the Arm Architecture Reference Manual.
Specifies an expression that is evaluated when the breakpoint is hit.
If no arguments are specified, then a hardware breakpoint is set at the next instruction.
thbreak *0x8000 # Set breakpoint at address 0x8000. thbreak *0x8000 thread $thread # Set breakpoint at address 0x8000 on # current thread thbreak *0x8000 thread 1 3 # Set breakpoint at address 0x8000 on # threads 1 and 3 thbreak main # Set breakpoint at address of main() thbreak SVC_Handler # Set breakpoint at address of label SVC_Handler thbreak +1 # Set breakpoint at address of next source line thbreak my_File.c:main # Set breakpoint at address of main(), my_File.c thbreak my_File.c:8 # Set breakpoint at address of line 8, my_File.c thbreak function1 if x>0 # Set conditional breakpoint that stops when x>0 thbreak context 257 0x80000000 # Set conditional breakpoint at address 0x80000000 # that stops when CONTEXTIDR=257