We're having a some problems with Visual Studio 2003 at the moment. In a
nutshell, devenv.exe terminates when trying to run our application after a
full rebuild. After trying to track this down using Filemon.exe (from
www.sysinternals.com) and debugging devenv.exe (in developer studio :))
using the Microsoft symbols (from the MS Symbol server), it appears that it
crashes in mspdb71.dll when doing a full dependency check.
It appears to crash when going through the dependency tree of the
compiler-generated .idb file. A partial callstack is listed below:
mspdb71.dll!NMT ::find() + 0x38
mspdb71.dll!NMT ::addNiForSz() + 0x17
mspdb71.dll!NMP ::getNi() + 0x4c
mspdb71.dll!MRE ::NiFromName() + 0x12
mspdb71.dll!MRE ::EnumSrcFiles( ) + 0x4d
VCProjectEngine .dll!CBldMreDep endencies::GetD ependencies() + 0x6d
VCProjectEngine .dll!CVCCLCompi lerTool::GetDep endencies() + 0x15a
VCProjectEngine .dll!CBldToolWr apper::GetDepen dencies() + 0x38
VCProjectEngine .dll!CBldAction ::ScanDependenc ies() + 0x4e
VCProjectEngine .dll!CBldAction ::UpdateDepInfo () + 0x29
VCProjectEngine .dll!CBldFileDe pGraph::Enumera teBuildActionsI () - 0x132
VCProjectEngine .dll!CBldFileDe pGraph::Enumera teBuildActionsI () + 0xa4
VCProjectEngine .dll!CBldFileDe pGraph::Retriev eBuildActions() + 0xdb
VCProjectEngine .dll!CDynamicBu ildEngine::HasB uildState() + 0xb0
VCProjectEngine .dll!CConfigura tion::DoUpToDat eCheck() + 0x16c
VCProjectEngine .dll!CConfigura tion::get_UpToD ate() + 0x16
VCProject.dll!C GenCfg::StartUp ToDateCheck() + 0x1f
msenv.dll!CSlnU pdate::HrProjsU pToDate() + 0xe8601
msenv.dll!CSlnU pdate::HrBeginS lnUpdate() + 0x134
Another odd thing is that we don't actually have "Enable Minimal Rebuild"
turned on for the project. I was under the impression that .IDB files were
not generated if this option was not enabled.
This project exists in a solution of around 13 other projects (our dependant
libraries), and is the main start-up project (checking the output from
filemon confirms that other .IDB files have been opened by devstudio, so it
would appear that this is the only one). This bug appears when doing a full
rebuild using Visual Studio and Incredibuild 2.03. Deleting the .IDB file
solves the problem, but this is a hassle, considering the amount of times we
need to do a full rebuild.
We use Perforce as our source code control system and make extensive use of
it's branching technology. It's worth pointing out that this does not
happen in the main codeline, but only in a branch (it's happened in 4
separate branches now).
If anyone could give any pointers on this, I'd be very grateful :)
Thanks