일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 틀린그림 찾기
- 포커
- 온라인게임
- 옥션해킹
- 게임 개발
- 틀린그림찾기
- 윈윈
- 서치아이
- 포커게임
- 상호링크
- Mame32
- 판매
- 보드게임
- 카일레라
- 써치아이
- 카일레라서버
- 맞고
- 윈윈전략
- 영어단어
- MAME
- 티스토리 초대장
- 프로그램 개발
- 옥션소송
- 영어단어게임
- 고스톱
- 게임 외주
- 맞고게임
- holdem
- 프로그램 외주
- 홀뎀
- Today
- Total
kyuseo의 게임 프로그래밍
TRACE, Trace 를 믿지 마세요. (정확하지 않은 오류) 본문
개요.. |
1000개의 빠른 TRACE 를 호출 할 경우 1000개 모두 디버그 창에 출력되리라고 믿지 마세요.
버퍼에 초과된 TRACE 는 출력되지 않습니다.
해결책 |
1. TRACE를 아래와 같은 빠른 반복구문에서는 사용하지 않는다.
2. 사용하더라도 100% 신뢰하지 않는다.
3. 정말 정확한 정보를 알고 싶다면 디버그 구문을 파일로 출력한다.
4. Sleep() 을 이용하여 느리게 출력한다.
코드 |
for( int i=0; i<1000; i++ ) { static int nTrace = 0; TRACE( "%s:%d nTrace = %d %d\n", __FILE__, __LINE__, nTrace++, i ); }
디버그창 :
D:\RapidEngine\RapidGui\sample\r_gui_wnd\MainFrm.cpp:282 nTrace = 0 0 ........ ........
D:\RapidEngine\RapidGui\sample\r_gui_wnd\MainFrm.cpp:282 nTrace = 391 391
|
보너스 정보 |
멀티 스레드( Multi Thread) 프로그램에서는 TRACE 와 static의 조합을 매우 주의해서 해야 합니다. 특정상황에서 다운된 경험이 있습니다.