Quote:The "CodeProfiler" project I have been testing under VM does not utilize any CPP project code or Arduino user libraries, its just the INO. Yet it still shows the C/C++ properties tab
Maybe some inconsistency in the project creation routine. When you use File>Open>Arduino Project to open an existing project Visual Micro probably sets the .ino to be a C++ type. You can see and change the type of a file in the File Properties.
The File properties work the same way as the Project Properties. When project properties are open you will see the properties change as you click between Project and .ino file in the solution explorer. So the same tool window simply shows properties for whatever is selected in the Solution Explorer.
Quote:So you are correct, and the difference in code/data size remains a mystery
If vMicro>Automatic Debugging is enabled I would expect to see a difference in code size between Debug and Release. The difference depends on what the project code does.
The Visual Micro debugger has to inject Serial statements into a temp copy of the code prior to compilation. That's how the debugger works because Arduino doesn't have easy debug through normal means.
If the project does not use Serial then using the debugger will cause the memory to be used that Serial normally requires and will cause the compile and linker to use the parts of the Arduino core required for Serial communications such as HardwareSerial.cpp.
If the project already uses Serial the difference between Debug and Release will be significantly smaller.
If you see no difference at all between debug and release, and never see "Compiling Debug Versions of 'xyz'" then the debugger is either disabled or you are using the free version of Visual Micro.
If you follow the guide above to alter platform.txt and change the optimization from -Os to your preferences then use "tools>visual Micro>reload tool chains" then you should see a difference. If not then click "Build>clean solution"and then build again. the "clean" simply clears temp build files so you get a full compile but VM should detect the change to platform.txt.
You can also experiment with the extraFlags, extraCppFlags or extraElf2HexFlags etc.in the Visual Micro Project Properties as described above.
As an aside, you can also set #defines in the properties based on configuration (release/debug) or globally for the project.