2013-01-18 4 views
0

가능한 중복 :
Why two functions print the same address?Windows PDB 파일에 동일한 주소에 대해 여러 기호가 포함되어 있습니까?

내가합니다 (DbgHelp API를 통해)를 처리하는 응용 프로그램에 대한 PDB 기호 파일로 일하고 있습니다. PDB 파일에 같은 주소에 대해 여러 개의 다른 공용 기호 항목이 들어있는 이상한 문제가 발생했습니다! 윈도우 7 (64)에 KERNEL32.DLL (WOW64)에 대한 최신 Microsoft PDB 파일을 사용하여 예를 들어

, 우리는 다음과 같은 정보를 덤프와 같은 주소 0x10b1a6e 31 개 가지 항목을 볼 수 있습니다

C:\Program Files (x86)\Windows Kits\8.0\Debuggers\x86>dbh.exe c:\symbols\wkernel32.pdb\D08F1E131D1F4D97B4AB2F64E00CFC8B2\wkernel32.pdb m 10b1a6e 

index   address  name 
    7a   10b1a6e : MFInitAttributesFromBlob 
    179   10b1a6e : MFCreateSourceReaderFromURL 
    2fc   10b1a6e : MFCreateASFMediaSinkActivate 
    5b6   10b1a6e : MFCreateWMVEncoderActivate 
    61d   10b1a6e : MFAddPeriodicCallback 
    64c   10b1a6e : MFPutWorkItem 
    825   10b1a6e : MFCreateAlignedMemoryBuffer 
    c12   10b1a6e : MFGetAttributesAsBlob 
    d26   10b1a6e : MFCreateMFVideoFormatFromMFMediaType 
    f1a   10b1a6e : MFFrameRateToAverageTimePerFrame 
    1129   10b1a6e : MFCreateProxyLocator 
    1277   10b1a6e : MFSerializeAttributesToStream 
    12b3   10b1a6e : MFEnumDeviceSources 
    146d   10b1a6e : MFCreateWMAEncoderActivate 
    164c   10b1a6e : MFBeginUnregisterWorkQueueWithMMCSS 
    1bfc   10b1a6e : MFCreateSourceReaderFromMediaSource 
    1d25   10b1a6e : MFInitMediaTypeFromWaveFormatEx 
    1d72   10b1a6e : MFGetStrideForBitmapInfoHeader 
    1efb   10b1a6e : CopyPropertyStore 
    1f8d   10b1a6e : MFDeserializePresentationDescriptor 
    1fb5   10b1a6e : MFCreateSampleGrabberSinkActivate 
    1fe4   10b1a6e : MFCreateASFStreamingMediaSinkActivate 
    23a3   10b1a6e : MFDeserializeAttributesFromStream 
    24c0   10b1a6e : MFConvertFromFP16Array 
    26f7   10b1a6e : MFSerializePresentationDescriptor 
    2877   10b1a6e : MFCreatePresentationDescriptor 
    2ab7   10b1a6e : MFCreateSourceReaderFromByteStream 
    2b4a   10b1a6e : MFGetWorkQueueMMCSSClass 
    2e08   10b1a6e : MFInitMediaTypeFromMFVideoFormat 
    2ef0   10b1a6e : MFCreateSinkWriterFromMediaSink 
    2eff   10b1a6e : MFConvertToFP16Array 

위 예제는 중복을 포함하는 많은 주소 중 하나입니다. 일반적으로 모든 주소에는 하나의 기호 항목이 있습니다. 동일한 주소 AFAIK에 대해 여러 기호 항목을 갖는 것은 의미가 없습니다! 이런 일이 왜

  • :

    은 누구에게로 가르치 려 수 있습니까?

  • 중복 된 항목을 고유 한 위치로 확인할 수 있습니까?

감사합니다.

답변

4

all the functions are the same이기 때문에 동일한 주소에 대해 여러 기호가 있습니다. 귀하의 경우에는 모두 기능입니다.

HRESULT MFBlahBlahBlah(...) 
{ 
    return E_NOTIMPL; 
} 
+0

감사합니다. 그건 의미가 있습니다. 매우 감사 :) – QAZ