🎉 We're happy to announce new public releases 🎉

  • SmartCode v10.4r1 - Take advantage of all the benefits our tools have to offer and build your applications with the latest version
  • TriCore v6.3r1 Inspector v1.0r8 - Save time and detect known issues before they get into your application
Contact us to get access

Arm Cortex: Mismatch between Editor and Watch Window for double-float variables

22-May-2025

When debugging a GCC Arm-based application in winIDEA, you might notice that double (double-precision floating-point) variables appear differently depending on where you're looking:

  • In the Editor, the values look correct, just like you wrote them in the code.
  • In the Watch window or VFP registers, the same variables may show incorrect or garbled values.

This happens because winIDEA is reading the variable’s memory layout incorrectly. If the debugger is set to expect one format, but your compiler used another, it will interpret the bits the wrong way. When targeting little-endian Arm architectures, the GCC compiler can store double values in two different ways, depending on how your toolchain and ABI are configured:

  • Legacy libraries use a swapped format (FPA)
  • Modern toolchains use the Straight (VFP) format



Solution

Set the correct double format in Advanced Symbol File settings:

1. Go to Debug | Configure Session | Application | Symbol Files| Edit | Advanced.

2. Select GCC ARM double format Straight (VFP).


More resources in winIDEA Help

Was this answer helpful?