블로그 이미지

3DMP engines

3D그래픽스 물리 수학, 프로그래밍 GPU Shader 게임엔진 알고리즘 디자인패턴 matlab etc..

by 송정헌



체크섬위 위치는

vs 에서 

린크-고급-체크섬 : 예/RELEASE 로 설정

예/RELEASE 이것은 원래 예/CHECKSUM 정도의 이름이였어야 하는데 이름이 잘못 지어진 것

이렇게게 설정해 놓아야 체크섬 정보값이 세팅되어 Unable to verify checksum for ...  워닝 이 발생하지 않는다


아래 링크는 좀 더 자세하게 이부분에 대해 다룬 블로그이다.





http://blogs.msdn.com/b/kikiwaka/archive/2009/03/13/dbg-unable-to-verify-checksum-for.aspx




Windbg  symbol  비교할 , date, timestamp, image Size, checksum  사용합니다.

 

0:000> lm v m Addemup

start    end        module name

00290000 002ab000   Addemup  C (private pdb symbols) D:\Studies\Debugging\DebugFest\Addemup\Debug\Addemup.pdb

    Loaded symbol image file: D:\Studies\Debugging\DebugFest\Addemup\Debug\Addemup.exe

    Image path: Addemup.exe

    Image name: Addemup.exe

    Timestamp:        Wed Mar 11 18:47:51 2009 (49B788C7)

    CheckSum:         00000000

    ImageSize:         0001B000

    Translations:       0000.04b0 0000.04e4 0409.04b0 0409.04e4

 

, executable file  함께 생성된 pdb file  사용해야 합니다. (Linker  pdb flle  생성합니다.) 하지만,함께 생성된 pdb file  사용하더라도 아래와 같은 warning    있습니다.

 

0:000> .reload /f

Reloading current modules

.

SYMSRV: ...\Addemup.pdb not found

SYMSRV: ... not found

DBGHELP: ...\Addemup\Addemup.pdb - file not found

DBGHELP: ...\Addemup\exe\Addemup.pdb - file not found

DBGHELP: ...\Addemup\symbols\exe\Addemup.pdb - file not found

 

*** WARNING: Unable to verify checksum for Addemup.exe

DBGHELP: Addemup - private symbols & lines

 ...\Debug\Addemup.pdb

...

 

이는 해당 exe file  checksum  00000000  경우가 큽니다. (이미 lm v m 으로 확인했습니다만...)

dumpbin  사용하여 해당 file  checksum  확인   있습니다.

 

dumpbin /headers [file name]

 

OPTIONAL HEADER VALUES

             10B magic # (PE32)

            9.00 linker version

            3600 size of code

            4200 size of initialized data

               0 size of uninitialized data

           11113 entry point (00411113) @ILT+270(_mainCRTStartup)

            1000 base of code

            1000 base of data

          400000 image base (00400000 to 0041AFFF)

            1000 section alignment

             200 file alignment

            5.00 operating system version

            0.00 image version

            5.00 subsystem version

               0 Win32 version

           1B000 size of image

             400 size of headers

               0 checksum

 

또는 windbg extension command  !lmi    있습니다. (lm v m 으로 가능합니다.)

 

0:000> !lmi Addemup

Loaded Module Info: [addemup]

         Module: Addemup

         Base Address: 00290000

         Image Name: Addemup.exe

         Machine Type: 332 (I386)

         Time Stamp: 49b788c7 Wed Mar 11 18:47:51 2009

         Size: 1b000

         CheckSum: 0

Characteristics: 102 

Debug Data Dirs: Type  Size     VA  Pointer

             CODEVIEW    51, 16320,    4d20 RSDS - GUID: {A6A1E6D2-384D-4C1A-B6FE-306B1DDC87DD}

               Age: 2, Pdb: ...\Addemup\Debug\Addemup.pdb

     Image Type: FILE     - Image read successfully from debugger.

 ...\Addemup.exe

    Symbol Type: PDB      - Symbols loaded successfully from image path.

 ...\Addemup.pdb

       Compiler: Resource - front end [0.0 bld 0] - back end [9.0 bld 21022]

    Load Report: private symbols & lines, not source indexed

 ...\Addemup.pdb

 

이는 Visual Studio 2005 / 2008 win32 application 또는 .NET application  debug mode  build 했을 , checksum  0으로 setting 하기 때문에 발생하는 문제입니다따라서이는 symbol  틀린 것이 아닙니다. Debug Mode   Visual Studio Linker  default  checksum 정보를 입력하지 않습니다. Linker option /RELEASE  추가하면아래와 같이 정상적으로 checksum  있는 것을 확인   있습니다.

 

0:000> lm

start    end        module name

010a0000 010a8000   Addemup    (deferred)             

6cd70000 6ce93000   MSVCR90D   (deferred)            

77040000 77150000   kernel32   (deferred)            

77840000 779a0000   ntdll      (private pdb symbols) 

0:000> !sym noisy

noisy mode - symbol prompts on

0:000> ld Addemup

...

Symbols loaded for Addemup

0:000> lm

start    end        module name

010a0000 010a8000   Addemup    (private pdb symbols) 

6cd70000 6ce93000   MSVCR90D   (deferred)            

77040000 77150000   kernel32   (deferred)            

77840000 779a0000   ntdll      (private pdb symbols) 

0:000> !lmi Addemup

Loaded Module Info: [addemup]

         Module: Addemup

         Base Address: 010a0000

         Image Name: Addemup.exe

         Machine Type: 332 (I386)

           Time Stamp: 49ba1865 Fri Mar 13 17:25:09 2009

           Size: 8000

           CheckSum: e4b8

...