Admin | Write | GuestBook
[공지] 해당 블로그에 용건이 있으신 분께서는 http://blog.fore.kr/ 의 방명록(Guestbook)으로 부탁드립니다.
너무나 뛰어난 최적화 기능.
Category : Programming/Programming Talk | URL : | Written by 포레 ( 2015. 9. 6. 01:15 ) | 신고

 

 

Visual Studio 2013 의 너무나 뛰어난 최적화 기능에 감탄을 금치 못했습니다.

( 작년까지만해도 2008 을 사용하고 있어서 전혀 몰랐습니다만... )

 

Thread Local Storage(TLS) 를 넣었는데, 이것이 최적화되어 사라져버리는 현상이 일어났습니다 !

 

문제의 코드

 

 

 #include <windows.h>

 

 #pragma comment(linker,"/INCLUDE:__tls_used")

 

 void __stdcall callback_func(...){

     MessageBoxA(NULL,"Hello world",NULL,MB_OK);

 }

 

 #pragma data_seg(".CTR$XLB")

   PIMAGE_TLS_CALLBACK p_tls = callback_func;

 #pragma data_seg()

 

 int main(void){

   system("pause");

   return 0;

 }

 

 

혹시 문제를 발견하셨나요 ?

 

문제는 . . .

 

프로그램 진입점(main) 함수 이하로 p_tls 변수가 사용된 흔적이 없어

 

p_tls 변수와 callback_func 함수가 최적화로 사라집니다 !!

 

이 너무나 훌륭한 최적화 기능에 1시간동안 씨름에 붙었습니다 -_- ; ; ;

 

 

해결 방법은 ?

 

 

솔루션 탐색기 창을 통해 단일 파일의 경우 위와 같이 파일 하나를 오른쪽 마우스 클릭하거나

 

프로젝트 혹은 솔루션 크기일 경우 프로젝트나 솔루션을 오른쪽 마우스 클릭해서

 

속성을 들어간 후

 

 

'C/C++ > 최적화 > 전체 프로그램 최적화' 를 '예(/GL)' 에서 '아니요' 로 변경하시면 됩니다.

 

Category
분류 전체보기 (605)
Notice (6)
Programming (79)
DISKER (1)
FSCH (7)
Caption (0)
Rest Time ! (443)
Hobby (64)
Tour (5)
Blind Post (0)
Recent Post
Recent Comment
Link
Calender
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Total :
Today :
Yesterday :