Keil Logo

Technical Support

On-Line Manuals

µVision User's Guide

About µVision User Interface Creating Applications Debugging Start Debugging Start Energy Measurement without Debug Application Program Execution Debug Windows and Dialogs Breakpoints Window Call Stack and Locals Window Code Coverage Command Window Component Viewer Disassembly Window Editor Window Event Recorder Setup Event Recorder Event Recorder Window Events Filtering Event Statistics Window Post-mortem Analysis Event Viewer Execution Profiler Instruction Trace Window System Analyzer Usage tips Save System Analyzer Contents Statistics Restrictions Logic Analyzer Setup Setup in Detail Restrictions Cortex-M Trace Configuration Memory Map Memory Window Performance Analyzer Registers Window Serial Window Debug (printf) Viewer Symbols Window System Viewer Adding System Viewer Windows System and Thread Viewer Thread States Toolbox Trace Data Window Trace Navigation Trace Exceptions Event Counters ULINKplus Window Watch Window Core Peripherals Cortex-M0 and Cortex-M0+ Nested Vector Interrupt Controller System Control and Configuration System Tick Timer Fault Reports (Cortex-M0+ only) Cortex-M3, Cortex-M4, and Cortex-M7 Nested Vector Interrupt Controller System Control and Configuration System Tick Timer Fault Reports Memory Protection Unit Cortex-M23/M33/M35P and Cortex-M55 Nested Vector Interrupt Controller System Control and Configuration System Tick Timer Fault Reports Memory Protection Unit Security Attribution Unit M-Profile Vector Extension (MVE) Debug Scripting Expressions Constants System Variables Peripheral Variables I/O Ports Serial Ports Program Variables (Symbols) Fully Qualified Symbols Non-Qualified Symbols Literal Symbols Using Symbols Line Numbers Bit Addresses Type Specifications Memory Attribution Specifiers Operators Differences between µVision and C Expression Examples Code and Data Trace (Cortex-M) Trace Features Configuring Trace Tracepoint Expressions Tracepoint Intrinsics Tracepoint Limitations Tracepoint Marks Tips and Tricks Review Peripherals and CPU Configuration Simulate I/O Ports Simulate Interrupts and Clock Inputs Simulate external I/O Devices Assign Serial I/O to a PC COM Port Check Illegal Memory Access Command Input from File Preset I/O Ports or Memory Contents Write Debug Output to a File Keyboard Shortcuts TPIU Initialization after RESET (Cortex-M) Prevent Opening Files Show Japanese Messages Debug Commands Debug Functions Simulation Flash Programming Dialogs Utilities Command Line Example Programs Appendix

Start Debugging

Start/Stop Debug ButtonStart debugging using the menu Debug — Start/Stop Debug Session. Depending on the options set in the dialog Options for Target — Debug, the µVision Debugger loads the application program and executes the startup code. The screen layout of the last debugging session is restored.

When program execution stops, µVision opens the source code at current cursor position or shows the CPU instruction in the Disassembly window. This behavior can be configured with the option Do not open matching source file after Run Stop of the dialog Edit - Configuration - Other

The next executable statement is marked with a yellow arrow in the Editor and Disassembly window.

Most editor features are available in debug mode. For example, developers can use the Find command and can correct program errors. The debug mode differs from the edit mode in the following aspects:

Multi-core debugging

µVision is capable of multi-core debugging when using Arm Cortex-M based devices. For every core that you wish to connect to, you need to open a separate µVision instance. Using the same debug adapter in each instance, you can connect to the different target cores. In each instance, select one access port (AP) of the multi-core device. Refer to the documentation of your debug adapter:


  • The first connected instance of the µVision debugger shows the standard Status bar. Every other instance displays Debug: Client Mode in the Status bar.
  • Tracing is only possible with the first µVision instance. In client mode, trace is disabled.
  • Some debug settings are not available in client mode (such as target clock, trace protocol, etc.).
  • Multi-core debug with ULINK2 is only supported in CMSIS-DAP mode.
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.