XrDebugNew.cpp

Материал из MODFAQ.RU — моддинг игр серии S.T.A.L.K.E.R., The Elder Scrolls и Fallout
Перейти к: навигация, поиск

1 вариант

Expression    : fatal error
Function    : _out_of_memory
File        : E:\stalker\patch_1_0004\xrCore\xrDebugNew.cpp
Line        : 359
Description    : <no expression>
Arguments    : Out of memory. Memory request: 8192 K
Expression : error handler is invoked!
Function : handler_base
File : E:\stalker\sources\trunk\xrCore\xrDebugNew.cpp
Line : 753
Description : std: out of memory

Ошибка[1][2][3]

Вылет происходит из-за нехватки оперативной памяти.

Если Windows 32-битная, кол-во оперативной памяти, которое может использовать приложение (т.е. игра) ограничено до 2 ГБ.

Если Windows 64-битная - такого ограничения нет, и приложение может использовать столько памяти, сколько потребуется. Ограничения лишь в том, что:

  • оперативной памяти должно хватать физически, т.е. необходимое кол-во планок нужного размера, должно быть в наличии на материнской плате.
  • приложение должно быть 64-битным. Если оно 32-битное, кол-во используемой памяти будет ограничено до 4 ГБ.

Касаемо игр серии S.T.A.L.K.E.R., все приложения являются 32-битными

Решение[4]

OS 32-bit:

  • Посмотрите в полном логе вылета строчку:
* [win32]: free[65320 K], reserved[98608 K], committed[1933160 K]

Строчка committed[1933160 K] показывает, сколько игре требуется оперативной памяти (1,93 ГБ) для работы.

А [win32]: free[65320 K] сколько всего её может выделить Windows (65 Мб).

В данном случае, свободной памяти практически нет. Поэтому, необходимо закрыть с помощью диспетчера задач Windows все лишние ресурсоемкие приложения, например, браузер, программу для записи видео или даже анти-вирус.

Если у компьютера кол-во ОЗУ 2 ГБ - добавить планку на ещё столько же. Больше 4 ГБ, 32-битная Windows все равно не сможет использовать, но зато теперь нужное кол-во памяти под приложение (1,93 ГБ) должно быть доступно.

Если и этого недостаточно, то лучший вариант - использовать 64-битную Windows.

OS 64-bit:

Исправленный XR_3DA.exe от macron[5]

68d10f286a0e448.png

Переместите файлы из архива с заменой в папку bin корневой директории ТЧ v1.0006

Это позволит игре использовать до 4 ГБ ОЗУ, вместо 2 ГБ.

Если 4 ГБ оперативной памяти будет недостаточно, и в строчке committed будет указано кол-во превышающее 4 ГБ - пробуйте понижать графические настройки игры, пока вылет не пропадет.

2 вариант

Expression : error handler is invoked!
Function : handler_base
File : E:\stalker\sources\trunk\xrCore\xrDebugNew.cpp
Line : 753
Description : application is aborting

Ошибка[6][7][8]

Данный вылет - это нечто вроде "универсального описания", по факту - просто "затычка".

Происходит при нестандартной ошибке, полноценное отслеживание которой, разработчиками не было предусмотрено. А в иных случаях вылетает без лога.

Наиболее частая причина вылета — *.ogf модели (например, NPC) подключили *.omf (анимации) не от неё или под другой скелет.

Решение[9]

После кода вылета ниже строки stack trace: могут быть адреса. Например:

stack trace:

0023:07C562E5 xrGame.dll, CxIOFile::Scanf()

По ним можно попытаться хотя бы частично догадаться\выделить вылет среди других таких-же.

Но чаще всего там будет пусто, поэтому остаётся только "метод тыка", пока вылет не исчезнет:

  1. Обратите внимание на то, что изменяли в игре последний раз.
    Если вносили изменения не вы - обратитесь к тем, кто это делал.
  2. Поэтапно откатывайте изменения, пока вылет не исчезнет.
  3. Перепроверьте, то изменение, которое вызывало вылет и исправьте его.

3 вариант

Expression    : error handler is invoked!
Function      : handler_base
File          : E:\stalker\sources\trunk\xrCore\xrDebugNew.cpp
Line          : 753
Description   : illegal instruction

Ошибка[10][11][12]

Данный вылет обычно происходит из-за ошибки "врезки" кода в движок. Например:

  • Обход StarForce (дисковой) защиты игры с помощью crack/NoDVD.
  • Модификация движка с помощью X-Ray Extensions и др. подобных.

Решение

Используйте только оригинальный движок без crack/NoDVD и прочих "врезок".

4 вариант

Expression    : error handler is invoked!
Function      : invalid_parameter_handler
File          : E:\stalker\sources\trunk\xrCore\xrDebugNew.cpp
Line          : 804
Description   :

Ошибка[13]

Какому-то объекту в конфиге не задано значение какого-то параметра.

Например:

ammo_mag_size =

В этом случае, оружию не было указано обязательное значение параметра ёмкости магазина.

Решение[14]

Найти и исправить ошибку.

5 вариант

Expression    : error handler is invoked!
Function      : handler_base
File          : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp
Line          : 764
Description   : pure virtual function call

Ошибка[15][16][17][18]

Описание аналогично варианту 3.

Решение

Решение аналогично варианту 3.


Источники

  1. Страница FAQ на AMK форуме, раздел "Справочник вылетов"
  2. Тема "Вылет «Out of Memory . Memory request: …… K». Frozen Zone" на сайте stalker-gaming.ru
  3. Пост пользователя "Anikot" на AMK форуме
  4. Страница "Справочник вылетов (Line 201 - Line 400)" на AMK форуме
  5. Пост пользователя "macron" на форуме Gameinator
  6. Пост пользователя "Shoкer" на форуме Gameinator
  7. Пост пользователя "TIGERR" на форуме AP Production
  8. Пост пользователя "Sin!" на AMK форуме
  9. Пост пользователя "aka_sektor" на AMK форуме
  10. Пост пользователя "Потенциал" на форуме AP Production
  11. Пост пользователя "cer" на форуме reborn-stalker.ws
  12. Пост пользователя "[PROTOTYPE]" на AMK форуме
  13. Пост пользователя "deadzone" на AMK форуме
  14. Тема "Справочник вылетов в S.T.A.L.K.E.R SHOC и их причин" на Simbion форуме
  15. Пост пользователя "erlik" на форуме Stalker-Portal.ru
  16. Пост пользователя "mamay01" на Sigerous форуме
  17. Пост пользователя "Hardtmuth" на форуме AP Production
  18. Пост пользователя "drCarabas" на форуме AP Production