02-18-2009 03:53 PM
I have a CVI application that performs a malloc() followed by a memcpy(). This application was built using CVI 8.5.1.
When the application runs under the CVI 8.5.1 Run-Time Engine, everything works correctly. However, when the application runs under the CVI 9.0 Run-Time Engine, the memcpy() call causes a General Protection Fault.
When I try to debug the application in CVI 8.5.1 (with the CVI 9.0 Run-Time Engine), both pointers appear to have a valid address when the application breaks due to the GPF. However, when running the app standalone, the Microsoft Debugging Tools for Windows shows that the GPF was caused by the assembly instruction mov edx, dword ptr [eax] (or something very similar) where the contents of the eax register is 0.
I thought Run-Time Engines were supposed to be backwards-compatible, so is anyone aware of any differences between these two Run-Time Engines that would affect malloc() and/or memcpy()?
02-18-2009 05:16 PM
Can you pare down your application to something simple that reproduces the GPF? Does the program also crash if you build it in Release configuration? We will probably need you to post a version of your project that can reproduce this problem reliably in order to figure out what is happening.
Mert A.
National Instruments