Finding crash

Thanny

Warlord
Joined
Dec 10, 2006
Messages
265
I have a game which consistently crashes on the next turn (at a point approximately halfway through), and I'm trying to figure out where.

I've recompiled cvgamecoredll.dll with a detailed map file, but I'm a little puzzled about how exactly to proceed.

The crash address in cvgamecoredll.dll is 0x01ef16e0. The actual image address according to the WinXP crash info dialog is 0x01ef0000. By my reckoning, that means I need to look for 0x01ef16e0 - 0x01ef0000 - 0x00001000 = 0x000006e0 in the map file.

At that address, I see this:

Code:
 0001:000006e0       ?getOriginalIndex@CvActionInfo@@QBEHXZ 100016e0 f i CvInfos.obj
 0001:000006e0       ?getUnitEntity@CvDLLEntity@@QAEPAVCvUnitEntity@@XZ 100016e0 f i _precompile.obj
 0001:000006e0       ?getID@CvArea@@QBEHXZ      100016e0 f i CvArea.obj
 0001:000006e0       ?getCityEntity@CvDLLEntity@@QBEPBVCvCityEntity@@XZ 100016e0 f i _precompile.obj
 0001:000006e0       ?getID@CvDeal@@QBEHXZ      100016e0 f i CvDeal.obj
 0001:000006e0       ?getID@CvPlotGroup@@QBEHXZ 100016e0 f i CvPlotGroup.obj
 0001:000006e0       ?GetSchemaCache@CvXMLLoadUtility@@QAEPAVFXmlSchemaCache@@XZ 100016e0 f i CvArtFileMgr.obj
 0001:000006e0       ?getActivePlayer@CvReplayInfo@@QBEHXZ 100016e0 f i CvReplayInfo.obj
 0001:000006e0       ?getNumMembers@CvTeam@@QBEHXZ 100016e0 f i CvTeam.obj
 0001:000006e0       ?getGridWidth@CvMap@@QBEHXZ 100016e0 f i CvMap.obj
 0001:000006e0       ?getTurn@CvReplayMessage@@QBEHXZ 100016e0 f i CvReplayMessage.obj
 0001:000006e0       ?getNumDiplomacyText@CvDiplomacyResponse@@QAEHXZ 100016e0 f i CvInfos.obj
 0001:000006e0       ?getID@CvSelectionGroup@@QBEHXZ 100016e0 f i CvSelectionGroup.obj
 0001:000006e0       ?getEntity@CvDLLEntity@@QBEPBVCvEntity@@XZ 100016e0 f i _precompile.obj
 0001:000006e0       ?getWhoTalkingTo@CvDiploParameters@@QBE?AW4PlayerTypes@@XZ 100016e0 f i CvDiploParameters.obj
 0001:000006e0       ?getUnitEntity@CvDLLEntity@@QBEPBVCvUnitEntity@@XZ 100016e0 f i _precompile.obj
 0001:000006e0       ?getNumTutorialScripts@CvTutorialMessage@@QBEHXZ 100016e0 f i CvInfos.obj
 0001:000006e0       ?getType@CvInitCore@@QBE?AW4GameType@@XZ 100016e0 f i CvDLLButtonPopup.obj
 0001:000006e0       ?getEntity@CvDLLEntity@@QAEPAVCvEntity@@XZ 100016e0 f i _precompile.obj
 0001:000006e0       ?getCityEntity@CvDLLEntity@@QAEPAVCvCityEntity@@XZ 100016e0 f i _precompile.obj
 0001:000006e0       ?getEndTurnMessagesSent@CvGame@@QAEHXZ 100016e0 f i CvGame.obj
 0001:000006e0       ?getSeed@CvRandom@@QAEKXZ  100016e0 f i CvRandom.obj
 0001:000006e0       ?getData1@CvPopupInfo@@QBEHXZ 100016e0 f i CvPopupInfo.obj
I don't work with MSVC a lot (I use BCB for Windows development), and I'm not all that accustomed to being stuck without the ability to simply debug the program (which is impossible, apparently, without a debug version of the BtS executable).

My idea was to isolate where the crash was, and write a bunch of stuff to log files to further refine the nature of the crash. But all of the above seem to be simple getter methods - one line of code returning a value.

Am I reading the error address incorrectly? Any advice on how to proceed?
 
Back
Top Bottom