검색결과 리스트
release에 해당되는 글 4건
- 2011.09.12 [Xcode] XCode4 Release, Debug 전환
- 2011.04.26 [Oracle] Oracle 10g Unintall
- 2010.10.03 Visual Studio 2008 Release 모드에서 디버깅 하기
- 2008.11.21 Release에서 디버깅 하기 ...
글
Product -> Edit scheme 에서 info의 Build Configuration에서 변경해 주면된다.
단축키는 "Command+<" 이다.
'Mobile > iPhone / Xcode' 카테고리의 다른 글
[iOS] Using Open Source Static Libraries in Xcode 4 (0) | 2011.09.16 |
---|---|
[iOS] 프로젝트 템플릿 (링크) (0) | 2011.09.12 |
[iOS] iOS에서는 보안상의 이유로 dynamic library Project를 만들수 없습니다. (0) | 2011.09.12 |
[iOS] 아이폰 초성 검색 클래스를 만들어 보자 (0) | 2011.09.10 |
[iOS] Objective-C Singleton 만들기 (2) | 2011.09.04 |
트랙백
댓글
글
'DB / NoSQL > Oracle / Toad' 카테고리의 다른 글
[Oracle] 테이블, 컬럼 조회 (0) | 2011.10.10 |
---|---|
[Oracle] oracle em emctl 기동안될때 조치 (0) | 2011.04.26 |
[Oracle] 테이블 목록 조사하기 (0) | 2011.04.07 |
[Oracle] Oracle typeof ?? (0) | 2011.02.15 |
[Oracle] Windows 7 Oracle 10g Install (0) | 2011.01.31 |
트랙백
댓글
글
Release /Debug 두 버전의 차이점은 다른 소소한 성능 향상을 위한 컴파일 옵션도 있지만
가장 중요한건 디버깅이 가능하느냐 가능하지 않냐의 차이점 이라고 생각입니다.
그런데 기존에 구축되어 있는 프로그램을 유지 보수 하다보면은 디버깅 할일이 발생합니다.
기존의 선임이 Release / Debug 별로 프로젝트를 잘 관리했으면 좋겠지만
세상 사는 일이 다 내맘데로 안되듯이 너무 오랜기간 유지 보수를 하다보니 Debug 정보가 유실되는 경우가 있습니다.
프로젝트가 하나의 exe이면 다시 Debug 컴파일 하면되지만 exe와 dll이 약 40~50개 연결된 프로그램이라면
헉 소리 납니다.
이럴때 기본적으로 되어 있는 Release에서 디버깅 정보를 삽입해서 컴파일 할 수 있습니다.
프로젝트 속성 (ALT + F7) 으로 들어가서 아래 그림과 같이 3개의 설명을 그림에 맞게 해주시면 Release 에서도
디버깅 가능합니다.
* Property Page -> Configuration Properties -> C++ -> General -> Debug Information Format
* Property Page -> Configuration Properties -> C++ -> Optimization -> Optimization
* Property Page -> Configuration Properties -> Linker -> Debugging -> Generate Debug Info
'C/C++ > VC++ / MFC' 카테고리의 다른 글
WINDOWS API 폴더 선택 (0) | 2011.01.21 |
---|---|
VC++에서 ADO를 사용하는 방법 (0) | 2011.01.20 |
[WTL] Visual Studio 2008 WTL AppWizMobile 오류 해결 (0) | 2010.09.16 |
MFC 디버깅시 MS MFC 소스코드를 쫓아서 디버깅할때는 Static Library... (0) | 2010.09.03 |
[dumpbin] error LNK2019: unresolved external symbol "__declspec(dllimport) (0) | 2009.10.24 |
트랙백
댓글
글
저같은 경우 통신 프로그램을 개발 할 때
로컬에서 작업을 마치고 나서 실 서버에 서버 프로그램을 올립니다.
그런데 거의 대부분 실서버 올렸다고 바로 릴리즈 하지 못합니다.
쏟아지는 버그와 수정 사항들 ... (저만 그런가요? ^^; )
이럴때 디버깅 하기가 참 곤란 합니다.
다시 로컬 작업하던 컴퓨터에서 디버깅 모드로 디버깅하고 컴파일 하고
다시 실 서버로 올려서 돌아가는지 확인하고.... 에휴~~~~
그럴대 참으로 유용한 방법입니다.
디버그 모드에서 출력창에 스트링을 TRACE 구문이 있는데요
WIN32 API 중에 OutputDebugString()이라는 API가 있습니다.
이건 릴리즈에서도 출력창에 스트링을 출력할 수 있습니다.
그런데 이렇게 막연하게 설명하면은
출력은 어디서 봐????
이러실텐데요....
출력을 보는 프로그램은 Win32 API로 직접만들수도 있지만...
저 같은 경우는 DebugView 라는 프로그램을 사용합니다.
DebugView의 사용법은 헬프 파일을 살펴보세요.
암튼...
OutputDebugString 사용법은 참으로 간단합니다.
void WINAPI OutputDebugString(
__in_opt LPCTSTR lpOutputString
);
그냥 문자열을 넘기면 됩니다.
그런데 여기서 문제가 살짝 발생하네요.... 다 좋은데.... 전 printf 같이
인자도 넘기고 싶습니다.
그래서 전 이렇게 했습니다.
void OutputDebugPrintf(TCHAR* pszFormat, ...)
{
//가변인자의 길이를 모르기때문에 동적으로 생성하기 위한 포인터 변수
TCHAR* pBuffer = NULL;
va_list args;
va_start(args, pszFormat);
// 가변인자 스트링의 길이를 구한다.
int nLen = _vsctprintf(pszFormat, args) + sizeof(TCHAR);
// 가변인자 길이만큼 문자열을 생성한다.
pBuffer = new TCHAR[nLen];
// 복사한다.
_vstprintf_s(pBuffer, nLen, pszFormat, args);
va_end(args); // Windows에서는 필요없음
// 출력해준다.
::OutputDebugString(pBuffer);
if (pBuffer)
{
delete[] pBuffer;
pBuffer = NULL;
}
}
va_list, va_start, va_end는 printf와 같이 가변인자를 받아서 처리하는
매크로 들입니다.
이걸이용하면은 인자가 몇개든 출력할수 있습니다.
사용법은 printf와 같습니다.
'OS > Windows' 카테고리의 다른 글
Windows API만 사용해서 BN_CLICKED 메세지 발생시키기 (0) | 2009.08.12 |
---|---|
CoInitialize(), CoUninitialize() 호출시 주의사항 (0) | 2009.02.03 |
GetExitCodeThread 로 스레드의 상태를 알아보기 (0) | 2008.09.27 |
InternetSetOption의 Timeout 설정 버그 (0) | 2008.09.16 |
WM_DESTROY 메세지 (0) | 2008.07.21 |
RECENT COMMENT