Access violation error debugging binary with /hotpatch in 11.1


Reference Number : DPD200153281


Version :  Intel® C++ Compiler Professional Edition for Windows 11.1


Operating System : Windows X64


Problem Description : 
This problem only comes with 10.1 or 11.1 compiler,
and has been resolved in later releases like the Intel® Parallel Composer 2011 and Intel Composer XE products.

Hotpatch functionality was introduced early 2010 in Windows, and not a part of Linux or Mac OS X.
The Windows x64 executable works and ran with correct results or output with /hotpatch , but when put breakpoints in the called function, and debugged using F5, it gives:-- Access violation 0xc0000005 error.

/////////////////////////////////sample.c//////////////
#include <stdio.h>
int main()
{
char ch[30];
mycpy(ch, "kljdsdjldsdsasaddas");
printf("%sn", ch);
return 1;
}
int mycpy(char *mych, const char*fixed)
{
strcpy(mych, fixed);      -->put breakpoint here
return 1;
}
/////////////////////////////////////

Minimum flags needed to compile and produce error:--

icl /Zi /hotpatch sample.c

--> windbg sample.exe . Put breakpoint in <strcpy> line inside <mycpy>
--> g (or F5) will cause Access violation 0xc0000005 error.

The error comes debugging with Windbg or Visual Studio debugger 200x in the IDE.

Though, the program always executes and gives correct result with /Zi /hotpatch even when run inside Windbg debugger and when breakpoints are not set, the Access Violation occurs when break-points are set, with hotpatch enabled.


Resolution Status : This bug has been fixed in Intel® Parallel Composer 2011 and Intel® Composer XE products.


[DISCLAIMER: The information on this web site is intended for hardware system manufacturers and software developers. Intel does not warrant the accuracy, completeness or utility of any information on this site. Intel may make changes to the information or the site at any time without notice. Intel makes no commitment to update the information at this site. ALL INFORMATION PROVIDED ON THIS WEBSITE IS PROVIDED "as is" without any express, implied, or statutory warranty of any kind including but not limited to warranties of merchantability, non-infringement of intellectual property, or fitness for any particular purpose. Independent companies manufacture the third-party products that are mentioned on this site. Intel is not responsible for the quality or performance of third-party products and makes no representation or warranty regarding such products. The third-party supplier remains solely responsible for the design, manufacture, sale and functionality of its products. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and brands may be claimed as the property of others.]
如需更全面地了解编译器优化,请参阅优化注意事项