We want to dump symbols of PDB file using DIA SDK. But IDiaEnumSymbolsByAddr::Next don't return using huge x64 PDB file.- EnvVS2008 SP1 and VS2010SP1- Stack0:002> ~0kChildEBP RetAddr0044f99c 6845e12d msdia100!bsearch+0x460044f9e4 68466a46 msdia100!ModCache::blockByAddr+0x4d0044fa20 6846695d msdia100!CFuncByAddrTrav::find+0x560044fa50 68466ec4 msdia100!CModSymsByAddrTrav::FInit+0x12d0044fa58 684673f0 msdia100!CBlockByAddrTrav::next+0x140044fcec 68467936 msdia100!CGlobalDataByAddrTrav::get+0x1000044fdbc 68467bd8 msdia100!CAllSymsByAddrTrav::getEnclosingSymbol+0x1860044fe1c 68467ca6 msdia100!CAllSymsByAddrTrav::findNextAddress+0x1780044fe3c 68467d62 msdia100!CAllSymsByAddrTrav::next+0x160044fe5c 6844103a msdia100!CAllSymsByAddrTrav::next+0x420044fe74 00201303 msdia100!CDiaEnumSymbolsByAddr::Next+0x4a0044febc 00201362 dia_bug!printFunction+0x1930044fec8 00201b78 dia_bug!wmain+0x220044ff10 75e8f13c dia_bug!__tmainCRTStartup+0x10b0044ff1c 773ad819 kernel32!BaseThreadInitThunk+0xe0044ff5c 773ada2b ntdll!__RtlUserThreadStart+0x230044ff74 00000000 ntdll!_RtlUserThreadStart+0x1b- Sample codebool printFunction(LPCWSTR pszPdbFile){ CComPtr<IDiaDataSource> data_source; if (FAILED(data_source.CoCreateInstance(CLSID_DiaSource))) return false; if (FAILED(data_source->loadDataFromPdb(pszPdbFile))) return false; CComPtr<IDiaSession> session; if (FAILED(data_source->openSession(&session))) return false; CComPtr<IDiaEnumSymbolsByAddr> symbols; if (FAILED(session->getSymbolsByAddr(&symbols))) return false; CComPtr<IDiaSymbol> symbol; if (FAILED(symbols->symbolByAddr(1, 0, &symbol))) return false; ULONG count; do { symbol.Release(); } while (SUCCEEDED(symbols->Next(1, &symbol, &count)) && count == 1); return true;}
Visual Studio/Team Foundation Server/.NET Framework Tooling version
Steps to reproduce
Product Language
Operating System
Operating System Language
Actual results
Expected results