I am back in the forums but can't find the forum for Windows Embedded Compact anymore. I hope to reach some people that can help here.
When compiling C++ programs for WEC2013 (Windows Embedded Compact 2013) the .EXE file is generated. Additionally the .PDB is created that contains debug information. Unfortunately the .PDB contains incorrect information about function parameters
on the ARM platform if optimization is enabled.
The ARM calling convention (ABI) uses registers r0-r3 for the first 4 parameters. But the debugger finds the PDB as the parameters would be on the stack. If optimization is disabled, the compiler pushes the registers r0-r4 to the stack in the function prolog
code. In that case the PDB information is correct. But the optimization omits this push operation.
How can we instruct the compiler to create debug information that matches the generated code? Is there anything else than disabling optimization?