The Debugging tab offers various debugging settings and source debug information manipulation.
Open Debug / Debug Options / Debugging tab to tailor the debugging experience to your needs.
Prevent context switch during
Checking an option disables interrupts during selected high-level debug operations.
For multithreaded applications, debugger jumping from currently debugged code is unwanted. For this purpose winIDEA can disable interrupts during most debug operations. The only command that is not configurable is Debug/Run - this one always enables interrupts. If for example Step over option is checked, winIDEA will disable interrupt requests (IRQs) when Debug/Step Over command is executed.
Reset conditional BP counters when CPU stops - Check to reset all BP pass counters when CPU stops.
Reapply BPs after target download - A target download may add additional information to the symbol table. Some breakpoints configured to source code locations or labels could now be resolved to more addresses.
•Configured on literal addresses: winIDEA disables breakpoints configured on literal addresses before download. A breakpoint set in the disassembly window is understood under the term breakpoint set on a literal addresses. Breakpoints set in the source window are set on line symbols and thus they don’t represent any problems when re-linking the project. When a breakpoint is set on an instruction in the disassembly window, it’s set on a first byte of the CPU instruction. After re-linking the project, the same instruction may be reallocated and the breakpoint is no longer set on a first byte. The option prevents setting a breakpoint on an address not aligned with the CPU instruction.
•All: winIDEA disables all breakpoints. Use this option if the target system is not ready for setting breakpoints after initialization. For example – the chip selects for program code point to default FLASH memory, whereas the debug session runs from RAM. Since FLASH memory device can get ‘confused’ if the debugger tries to write to it (by attempting to set software breakpoints), this option can be used to prevent this from happening. Once the chip selects have been configured, just click Enable all in the Breakpoints dialog.
•None (default): no breakpoints are to be disabled (in normal debugging operation)
Source step until a different line - A single C source line can contain several C statements. The Step command will per default step them individually, but there will be no visual change in the source debug window. If this option is checked, the Step command will be repeated until a different source line is reached.
Reserve one breakpoint for high level debugging - By default, one breakpoint is reserved for high-level debugging. If software breakpoints functionality is not needed, the breakpoint can be released for the user program to use. If this is the case, uncheck this option.
Display markers only in the last line - Some compilers produce line information for a multi-line statement for all its source lines. winIDEA will display line symbol markers in all those lines. If you find this disturbing, enable this option to display the line symbol marker only in the last statement line.
Set only one breakpoint on a source line with multiple locations - A single source line can (specially when code is optimized) be non-contiguous (i.e. be on several locations in memory). Also, code which is inlined yields multiple addresses for a single source location. On a CPU with limited number of hardware breakpoints, setting such a breakpoint would exhaust all the available breakpoints. If this option is checked, only the first address is used as a breakpoint.
Trust source line debug info - Compiler debug information on source lines is used for debugging and tracing. Several quality improvements are possible by relying on it, but if the information wrong it will break the operation of some functions.
Source Line Ambiguity resolution - When resolving source position ambiguity within the same module, winIDEA can automatically select either the lowest address of compliant lines, or the highest.
Ambiguity can occur because multiple functions can have the same name by using the overloading technique and use of different compilers. For more information refer to the chapter Qualified names.
Run Until Return operation - defines whether Debug / Run Control /Run Until Return command will stop at the last instruction in the function or after it - effectively stepping out of the function.