Собираю программу при помощи IDE VC60 все прекрасно работает как в Debug, так и в Release, но когда собираю при помощи автоматической сборки с использованием scons начинаются чудеса:
Программа
стабильно вылетает при вызове фунции _Module.Lock() (где _Module = Wtl::CAppModule), когда пытаюсь прошагать по функции, получаю следующее:
CountYourTime!ATL::CComModule::Lock:
0041f5a0 55 push ebp
0041f5a1 8bec mov ebp,esp
0041f5a3 51 push ecx
0041f5a4 894dfc mov [ebp-0x4],ecx
0041f5a7 8b45fc mov eax,[ebp-0x4]
0041f5aa 83c014 add eax,0x14
0041f5ad 50 push eax
0041f5ae e8a80afeff call MyCoolProgram!calc::Manager <PERF> (MyCoolProgram+0x5b) (0040005b)
0041f5b3 8be5 mov esp,ebp
0041f5b5 5d pop ebp
0041f5b6 c3 ret
В фунции выпоняется переход по указанному адресу, где как-раз находится надпсь "This program cannot be run in DOS mode"
Это происходит и в дебуге и в релизе и с разными ключами компилятора и линкера (пробовал /fixed yes|no, /OPT ref noref). Ничего не меняется программа всегда падает в этом месте.
Программа, собранная в IDE никогда не падает, хотя различий в ключах я найти не могу.
Не могу даже представить в какую сторону капать. Есть идеи?
Aera wrote:
> Не могу даже представить в какую сторону капать. Есть идеи?
Думаю, это косвенное проявление какой-нибудь другой ошибки, связанной с
порчей памяти. Так что используй средство для отлова таких ошибок
Posted via RSDN NNTP Server 2.0