• 전체강좌

    Windows CE 디버깅 메시지 출력 관련 참고 사항

    twitter facebook

    안녕하세요? 착한이입니다.


    WEC 2013을 포함한 Windows CE(WinCE) 운영체제에서는 소스 코드 디버깅을 위해

    RETAILMSG, DEBUGMSG, ERRORMSG 와 같은 함수를 주로 사용합니다.

    여기에 다음 사항을 추가로 알아 두시면, 소스 코드 디버깅 시에 유용하게 사용할 수 있습니다.  

    이번 강좌에서는 디버깅 메시지 출력 관련 참고 사항에 대해 알아 보겠습니다.


    1. __WFUNCTION__ 매크로

       Visual Studio 에서는 함수 이름을 출력하기 위해 __FUNCTION__ 을 사용합니다.

       추가로 unicode 문자열로 출력하기 위해 __WFUNCTION__ 을 사용하기도 합니다. 

       만약 __WFUNCTION__ 이 정의되어 있지 않다면, 다음 코드를 추가하면 됩니다.

       

    #ifndef __WFUNCTION__
    #define __WFUNCTION__ TEXT(__FUNCTION__)
    #endif


        다음과 같이 RETAILMSG로 해당 소스 코드 라인의 함수명을 출력할 수 있습니다.

       

          RETAILMSG(TRUE, (TEXT("함수명 %s\n"), __WFUNCTION__));


     2. OutputDebugStringW

       RETAILMSG와 같이 Release와 Debug 모드에서 디버깅 메시지를 출력할 수 있는 함수입니다.

       OutputDebugStringW 는 unicode 문자열을 출력할 수 있습니다.

       사용 방법은 다음과 같습니다.

     

        OutputDebugStringW(L"디버깅 출력 테스트\n");


    3. NKDbgPrintfW

        RETAILMSG와 같이 Release와 Debug 모드에서 디버깅 메시지를 출력할 수 있는 함수입니다.

        OAL에서 디버깅 메시지를 출력할 때 사용할 수 있습니다.

        NKDbgPrintfW 는 unicode 문자열을 출력할 수 있습니다.

        그리고 특정 형식의 문자열을 디버깅 메시지로 출력할 수 있습니다.

        사용 방법은 다음과 같습니다.

       
         int data=1004;

        NKDbgPrintfW(TEXT("datat is %d\n"), data);

       

        NKDbgPrintfW가 정의되어 있지 않다면, 다음 코드를 추가하면 됩니다.

        

         static __inline void WINAPIV NKDbgPrintfW(const wchar_t* szFmt, ...)
         {
                wchar_t szBuffer[1024];
                va_list args;
                va_start(args, szFmt);
                vswprintf_s(szBuffer, _countof(szBuffer), szFmt, args);
                OutputDebugStringW(szBuffer);
                OutputDebugStringW(L"\n");
                va_end(args);
          }

     

     여기까지 Windows CE에서 디버깅 메시지 출력 시, 참고할 수 있는 사항에 대해

     알아 보았습니다.

     주로 RETAILMSG 함수를 사용하지만 OutputDebugStringW와 NKDbgPrintfW 함수를

     알아 두시면 유용하게 사용할 수 있습니다.

     그럼 즐거운 개발 하시길 바랍니다.

     

    WeAreDev에서 만든 WAD-MX6W CPU 모듈과 솔루션에도 많은 관심 부탁 드립니다.

    WAD-MX6W CPU 모듈의 사양은 다음과 같습니다.

    1. CPU : i.MX6 (Cortex A9 - Max 1.2GHz) Quad Plus, Quad, Dual Plus, Dual, Solo Core
    2. RAM : 2GB DDR3 (Max 4GB)
    3. eMMC : 8GB (Max 128GB)
    4. WiFi & Bluetooth Combo
    5. Connector : 300 pins Connector  

    6. OS : Windows Embedded Compact 2013(WinCE 8),

               Windows Embedded Compact 7(WinCE 7),

               Windows 10 IoT Core,

               Android 8.0, 9.0

               Linux(Yocto)

               QNX

    7. Size : 50 x 32 mm