Перейти к контенту

Справочник вылетов


ColR_iT

Рекомендуемые сообщения

(изменено)

Из странного, но пожалуй, добавлю:

[error]Arguments     : LUA error: ... bad argument #1 to 'tonumber' (value expected)
Порождается конструкцией вида: local function f() end; tonumber( f() )

В отличии от local function f() return nil end; tonumber( f() )

Возможно целое семейство, связанное с тем, что function () ... end возвращает не nil, в некое 'no value'.

 

Самое поганое, что в тех местах, в которых чаще всего может встретиться, не падает с логом, а тихо повисает.

 

Добавлю к:

Description : ...- cop\gamedata\scripts\ui_si.script:383: attempt to call global 'qwe' (a nil value)

Возможно, "повис" весь скрипт при трансляции или первом запуске. Что нибудь типа лишних скобок в каком-нибудь local v = val() вне тела функции, или эквивалента t[nil] = v.

Изменено пользователем Dennis_Chikin

Поделиться этим сообщением


Ссылка на сообщение

[error]File : E:\stalker\sources\trunk\xrCore\Xr_ini.cpp

[error]Line : 352

[error]Description : <no expression>

[error]Arguments : Can't find variable строка in [секция]

 

Здесь есть, но в виде частного случая.

 

Попытка чтения несуществующей переменной вида ini:r_string( секция, строка ) (или r_float, r_bool и т.д.)

 

1. Убедиться, что переменная действительно зачем-то нужна.

2. Исправить код на

local v -- или иное

if ini:section_exist( секция ) and ini:line_exist( секция, строка ) then

v = ini:r_string( секция, строка )

else более вменяемая диагностика

end

 

3. Поправить конфиг при необходимости (см. п1)

  • Сомнительно 1

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

"Дело в том, что скрипты не имеют никакого отношения к данной проблеме."

 

Дело в том, что к данной проблеме (равно как и к пресловутому "переполнению стека") имеет отношение вообще все, что не было диагностировано иным образом.

Кстати, рекомендую обратить внимание на разные значения в строке "line" и разные количества запрошенной памяти.

 

То есть, всем, кто сталкивается с таким сообщением, нужно обращать внимание на такие моменты, и пополнять список, если причина была установлена.

 

P.S. На версии движка тоже обращаем внимание: строки могут и отличаться.

 

Еще хочу сказать по поводу сообщения выше, там где указание строки в скрипте: эта самая строка в скрипте тем более может меняться, поскольку в модах постоянно вносятся разные изменения в самые разные места. Так что следует показывать содержание строки, не то, что ни кому( кроме автора сообщения) неизвестно где какая-то переменная с ни о чем не говорящим названием оказалась равна nil.

Изменено пользователем Dennis_Chikin
  • Согласен 1

Поделиться этим сообщением


Ссылка на сообщение

"D:\prog_repository\sources\trunk\xrGame\xrServer_sls_clear.cpp" - ЗП ?

 

Он же в ТЧ - внезапно, любимый всеми e-parent&e-entity и его разновидности.

Кстати, не обязательно, что именно ящик. ;)

  • Сомнительно 1

Поделиться этим сообщением


Ссылка на сообщение

"[tbl.string_key1] ="

 

Запись в таблицу по некорректному индексу рушит namespace.

Вылеты получаются довольно забавные и порою догадаться в чем дело - нетривиально.

 

Для себя я пришел к принудительной инициализации:

-- "ручная" инициализация модулей, для контроля корректности
-- и обеспечения порядка инициализации для зависимых модулей

string_format = string.format

function log( ... ) _util.log( "_init", ... ) end
function abort( ... ) _util.abort( "_init", ... ) end


local t = {	-- последовательность важна !

["start"] = {	-- инициализация глобальных таблиц и менеджеров
	"_util",		-- служебные функции
	"_tbl_npc",		-- разные забавные особенности неписей
	"_tbl_protected",	-- защищенные предметы
	"_tbl_global",		-- соответствия классов и типов
	"_tbl_outfits",		-- костюмы
	"_tbl_levels",		-- уровни
	"_tbl_treasures",	-- тайники
	"_tbl_deathmgr",	-- лут
	"_tbl_sounds",		-- звуки
	"sound_theme",
	"amk_netpk",		-- работа с нетпакетом
	"xl_imgr",		-- кэши параметров предметов
	"amk"			-- управляющий скрипт амк (помойка на самом деле)
	},

["amk"] = {},	-- дополнения amk

["actor"] = {	-- скрипты, требующие актора
	"actor_data",		-- данные актора, нужны для всего онлайнового
	"ui_amk_options",	-- опции солянки
	--"fix_it",		-- правки глюков allspawn 2010.14.08
	"amk_timers",		-- таймеры (сохраняются в pstor)
	"xr_sound",		-- звук
	"news_manager",		-- типсы, init не нужен, но пусть будет
	"sr_psy_antenna",	-- пси-излучение, самоинициализируется, но для контроля вставим
	"bind_restrictor",	-- обновление рестрикторов (в основном всякие "разрывающиеся рюкзаки" и прочая ересь
	"amk_spawn",		-- спавн amk
	"inv_manager",		-- инвентарь актора
	"dialogs",		-- функции для диалогов
	"xl_offline",		-- состояние объектов в офлайне (требует level)
	"amk_anoms",		-- аномалии
	"bind_art",		-- арты, для детектора, и будет еще для "контейнеров"
	"death_manager",	-- лут
	"xl_online",		-- состояние объектов в онлайне
	"xr_box",		-- лут из ящиков
	-- не включать - init() дергается из конфигов -- "bind_physic_object"	-- всякая всячина, от ящиков до БТР
	"news_data",		-- тексты новостей
	"news_main",		-- новости
	"level_weathers",	-- смена погоды
	"ui_rad",		-- шкала радиации
	"actor_effects",	-- эффекты актора

	"treasure_manager",	-- тайники
	"task_manager",		-- квесты
	"dialog_manager",	-- диалоги
	"sr_territory",		-- стрельба на особых территориях, инициализация не нужна, но пусть будет
	"xl_relations",		-- сообщества и отношения
	"bind_heli",		-- вертолет
	"mob_combat",		-- схемы монстров, не нужно, но чтобы было, для контроля
	"mob_death", "mob_panic", "mob_trade", "mob_trader",
	"bind_monster",		-- онлайн-монстры
--	"xr_motivator",		-- онлайн-неписи
	"xr_wounded",		-- ранения, чтобы было
--	"sak",			-- функции сюжета и диалогов Сяка
	-- "amk_offline_alife",	-- офлайн, устарело
----	"tag_spb",		-- превращение трупов в зомби при выбросе
	"amk_mod"		-- большая помойка от АМК
	},

["np_pda"] = {	-- требуют netpacket_pda в онлайне
	"spawn_level_changer",	-- телепорты и принудительные смены уровня
	"bind_mteleport",	-- внутриуровневые телепорты, создание/удаление здесь же
----	"flamethrower",		-- огнемет
----	"repair_check",		-- ремонт и апгрейд
----	"aem_manager",		-- арена
--	"storyline",		-- сюжет
	"escape_dialog",
----	"braad_test",		-- функции сюжета, прибито гвоздями к all.spawn
	"kostya_dialog",	-- функции сюжета и диалогов
----	"new_dialog",		-- функции сюжета и диалогов
----	"wawka_dialog",		-- функции сюжета и диалогов
--	"arhara_dialog",	-- функции для диалогов Архары
	"actor_devices",	-- функции шмоток актора
--	-- "amk_artmod",	-- варка артов
--	-- "ui_pda_art_mod",	-- какой-то девайс для варки артов, устарело
	"biodetector",		-- детектор монстров (раньше не нужен)
	"sleep_manager"		-- сон
} }


local m_name = false


function check( blk )
	local f, pt1
	local tt = t[blk]
	local pt2 = profile_timer()
	pt2:start()
	for i = 1, #tt do
		if m_name then abort( "error in module [%s]", m_name ) end
		m_name = tt[i]
		f = _G[m_name].init
		if f then
			pt1 = profile_timer()
			pt1:start()
			if f() then
				pt1:stop()
				log( "init", "init %s [%s], ok (%s)", m_name, blk, pt1:time() )
			else
				pt1:stop()
				log( "warning", "init %s [%s], !true (%s)", m_name, blk, pt1:time() )
			end
			m_name = false
		else abort( "init, no %s.init() [%s]", m_name, blk )
	end	end
	pt2:stop()
	log( "init", "profile time: %s", pt2:time() )
end

 

  • Нравится 1
  • Сомнительно 1

Поделиться этим сообщением


Ссылка на сообщение

ТЧ, [error]Line : 804

 

- в общем случае - некорректный тип данных, либо слишком длинная строка.

Вообще, рекомендую следить, чтобы выводимое со всем возможным обрамлением (не важно, как и чем добавленным) ни в кое случае не превышало 250 байт.

 

И, да, пользуясь случаем, маленькое объявление:

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

  • Сомнительно 1

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

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

Если он здесь еще не описан, и Вы нашли его причину, опишите это здесь, по аналогии с имеющимся. Самое главное в описании: платформа (ТЧ, ЧН, ЗП), строка line : xxx, причина.

 

Все вылеты из этой темы собраны ЗДЕСЬ.

 

Поскольку публикаций по ПРИЧИНАМ вылетов я давно уже не вижу, а вижу исключительно флуд, тема закрыта. Если Вы обнаружили вылет, который здесь не описан, и знаете, как его лечить - напишите модераторам в л/c.

Изменено пользователем Dennis_Chikin
  • Полезно 2

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

От Дормидонт:

 

"Зов Припяти"

 

stack trace:

0023:099D0CC3 xrGame.dll, CDialogHolder::CDialogHolder()

 

в общем можно и так:

stack trace:

00**:0***0CC3 xrGame.dll, CDialogHolder::CDialogHolder()

 

Причина: npc:bone_position( "bip01_neck" ) примененное к химере.

Ну, то есть, как вариант, любая кость, которая отсутствует в модели того,к кому применяют.

 

Найдено НаноБот.

 

P.S. (DC) Однако, весьма забавное сочетание причины и выводимого в лог.

Изменено пользователем Dennis_Chikin
  • Сомнительно 1

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

от Zander_driver

 

Посмотрел тут из любопытства в справочник, а там ведь этого нету...

лог:

FATAL ERROR

[error]Expression : assertion failed
[error]Function : CInventory::DropItem
[error]File : E:\stalker\sources\trunk\xr_3da\xrGame\Inventory.cpp
[error]Line : 220
[error]Description : InSlot(pIItem) ; полагаю, тут могут быть и другие значения

 stack trace:
Причина: попытка выбросить/передать предмет/оружие, у которого изменены параметры, которые в оригинале читались жестко из конфигов и не подлежали изменению "ин гейм".

Фактически такое возможно только на X-ray Extensions, там есть инструменты для изменения таких параметров.

 

Лечение: вовремя возвращать все параметры на место, после своих изменений. Практика показывает, что пока оружие находится в инвентаре актора, движок не возражает. Т.е. надо все вернуть на место до того, как станет возможно выбрасывание/перемещение предмета.

 

upd: в общем, давно известно: уберите из слота, потом меняйте. dc

SoC

 


А это уже от меня (ceterum censeo, автообъединялка должна быть убита):

 

Что-то типа 0023:0573F73E xrGame.dll

[error][ 18] : Больше файлов не осталось.

 

и он же

[error]Line : 753

[error]Description : std: out of memory

 

- ящик грохнуло в аномалии или аналогичное событие.

Изменено пользователем Dennis_Chikin
  • Полезно 4

Поделиться этим сообщением


Ссылка на сообщение

1.0006 "Международный", патч 2014 года:

 

0023:00A3105B xrLUA.dll - (на самом деле *105B xrLUA.dll)
0023:0595ED92 xrGame.dll - собственно, адрес здесь и далее может быть любой.
0023:0592BAAC xrGame.dll

 

в xml существует строка вида:

<precondition>module.function</precondition>

при том, что сам module.script отсутствует либо содержит ошибку, из-за которой невозможна его компиляция.

 

upd: достаточно и того, что вызываемая функция не найдена, например, ошибка в имени.

  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

От @Zander_driver  (SoC):

 

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

 

Причина:

sect = nil

ini:r_float( sect, v )

Изменено пользователем Dennis_Chikin
  • Спасибо 1
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение


0023:7492C41F KERNELBASE.dll
0023:74718E89 MSVCR80.dll, EH_prolog()
0023:05696DA8 xrGame.dll
0023:058B79DD xrGame.dll
 
[error][     183]    : Невозможно создать файл, так как он уже существует.

 

Совершенно дивный вылет в ТЧ, если удалить объект, для которого сделали

local t = {}

function mybinder:net_spawn( data )

t[self.object:id()] = self

...

end

 

function mybinder:net_destroy()
t[self.object:id()] = nil
object_binder.net_destroy( self )
end

 

P.S. Как лечить ? "А Вы ТАК не делайте !" (C)

Поделиться этим сообщением


Ссылка на сообщение

от mauvais

 

0023:0047FF3D XR_3DA.exe, CLAItem::CalculateBGR()
0023:04B286A9 xrGame.dll
 
[error][       8]    : Недостаточно памяти для обработки команды.

 

Одна из основных причин происходящего:

Неправильный путь к световой анимации в конфиге/скрипте, либо отсутствие нужной световой  анимации. То бишь в первую очередь проверять файл lanims.xr и пути.

  • Спасибо 1
  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение

0023:00E87041 xrLUA.dll, luabind::detail::get_class_name()
0023:00E8E918 xrLUA.dll, luabind::detail::class_rep::function_dispatcher()

 

Не знаю, почему не ищется поиском, ну да добавлю еще раз:

obj.alive() вместо obj:alive() ну и тому подобное. (если не получили просто молчаливое повисание всей функции).

 

см. также https://www.amk-team.ru/forum/topic/6185-skriptovanie/?do=findComment&amp;comment=1157938

also, умельцам удавалось править xml так, что вылет получался при операциях с custom_static.

 

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

  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

×
×
  • Создать...