Categories

{{ selectedCategory.name }}

{{ topic.Title }} {{ topic.Ddate | formatDate }}

{{ topic.Content }}

No topics found!

Cannot set a hardware breakpoint

28-Dec-2023

Hardware breakpoints are set by configuring certain on-chip logic components. Hardware breakpoints are a limited resource, and their number varies, depending on the architecture and the implementation. 


By default winIDEA reserves one hardware breakpoint for high-level debugging (Debug / Debug Options / Debugging: Reserve one breakpoint for high-level debugging checkbox). If this functionality is not needed, the box can be unchecked, and the breakpoint released for the user to use.


The configuration of the Hardware breakpoint is typically done by writing to certain on-chip registers.

In most cases, this error is encountered if all the available Hardware breakpoints are used, or in some cases, the memory writes to these registers fail (e.g. unstable debug session).


Possible solutions

Remove one or more existing hardware breakpoints

Open Debug / Breakpoints to remove the hardware breakpoints.


Check if the debug session is stable

After starting a debug session, make sure that:

  • no errors are reported in the Progress window,
  • the CPU status is as expected,
  • you can execute basic debug operations (Run, Stop), and
  • you can observe variables/memory locations in the Watch window.


Disable the onboard debugger

Some evaluation target boards have onboard debuggers. In case you are using BlueBox tools for debugging your application, make sure that any onboard debuggers are disabled as having them enabled could prevent our tools from having access to all the available resources, including hardware breakpoints.


Use Slow Run and Run until

Using Slow Run sets a breakpoint on all possible instructions that the CPU could go to next and then executes the run command. When the CPU is stopped at the previously set breakpoint, that breakpoint is removed and a new one is set to the next instructions, and so on. In case you are stopped on a switch instruction or a complex if statement, compilers usually generate a jump table and winIDEA must set breakpoints on all possible jump locations to stop the CPU on the next instruction. This can use up all available hardware breakpoints.


Switch to software breakpoints

If you have used up all of the hardware breakpoints, and cannot remove one or more of them to set new ones, you can use Software breakpoints instead. Open the Hardware menu and select Use Software Breakpoints for the desired core


Update winIDEA

Update your winIDEA version to the latest one available on our website.


RH850 Access Breakpoints

Check this chapter in winIDEA Help.


Source-level debugging not available

If you run into these issues, the consequence can be that you are not able to set a hardware breakpoint.  


More resources

Was this answer helpful?

Sorry this article didn't answer your question, we'd love to hear how we can improve it.
Note: This form won't submit a case. We'll just use it to make this article better.

Similar topics

{{ topic.Title }} {{ topic.Ddate | formatDate }}

{{ topic.Content }}

No similar topics found!

Other topics in the same category

{{ topic.Title }} {{ topic.Ddate | formatDate }}

{{ topic.Content }}

No topics found!