I totally agree with your opinion if I worked in general application environment like you.
In the embedded area, that is different story. if you make same function in PC and if you use different code in target device, nobody believe that It will make same result in embedded system. Logically, if you made same function, it should do same action in embedded device as well, even though you used different code, but human mistake makes that Nobody believe the code, and embedded area is more sensitive for error.
because of that reason, embedded S/W engineers love to use only printf(…) function for their debugging and they don’t come to PC area to make same code like me. even my case is much progressive approaching to simulate same function in PC with same compiler and with same sources.
For example : GCC/MSVC compiler automatically fill off inital data ‘0’ for uninitialize variables. but VxWorks compiler dosen’t do that.
this kind of small different can impact to embedded S/W developer’s behavior not to use debugger and not to use simulating environment in PC. there are many reasons why embedded S/W engineer dosn’t use debugger like because interrupt relevant operation or time critical operation…
but, In my case, I compromized that by seperating real low level operation and high level operation in our S/W architecture to take advantage of PC developing environment, and I have cut off all Xcode/Assemble code/MSVC code/name space and so on… to make only one code for posix compliant code, and it works on Cygwin environment. that is why I want to use GDB in Cygwin environment with -mwindow option, but Investigating current many solutions as far as I can do, there is no solution.
further more, I don’t like to install VC++ in my PC and VC++ can’t make excutable file with my modified posix compliant sources, and I made my own windows system for target device. that is also simulated in Cygwin environment. I don’t want to move that In heavy VC++ and different style of Makefile and project file.
I just want to keep only one way from PC simulation to Linux(it is also one of simulation) and lastly to Target device.