Size: a a a

2020 July 16

IZ

Ilia Zviagin in supapro.cxx
Aleksander Mironov
Но теперь у меня встает вопрос, а какой оверхед у функторов т.к. я ими видимо никогда не пользовался =)
Пиши уже! Встаёт у него там что-то...
источник

Д

Дима in supapro.cxx
Vlad Serebrennikov
это может быть и поврежденный стек
что могло это вызвать? проблема в коде или внешнее воздействие?
источник

IZ

Ilia Zviagin in supapro.cxx
Это значит " молодец, так держать!"
источник

z

zeroid in supapro.cxx
Дима
что могло это вызвать? проблема в коде или внешнее воздействие?
> Creature.cpp:215
Где то там
источник

VS

Vlad Serebrennikov in supapro.cxx
Дима
что могло это вызвать? проблема в коде или внешнее воздействие?
с практической точки зрения дело в коде
источник

Д

Дима in supapro.cxx
zeroid
> Creature.cpp:215
Где то там
m_zoneScript->OnCreatureCreate(this, false);

вызывается метод, this есть.... не понимаю в чем проблема
источник

VS

Vlad Serebrennikov in supapro.cxx
если дело и правда в поврежденном стеке, то вот здесь во второй половине наглядно показано, как пользоваться трассировкой в отладчике
https://youtu.be/PorfLSr3DDI?t=544
источник

Д

Дима in supapro.cxx
дело в том, что есть только крашлог со стеком
источник

Д

Дима in supapro.cxx
как воспроизвести проблему неизвестно
источник

АК

Александр Караев... in supapro.cxx
Дима
------------- BACKTRACE -------------
#0  0x000000003f800000 in ?? ()
#1  0x00000000008a824e in Creature::RemoveFromWorld (this=0x7fff05c6e080) at /server/src/dsc_live/src/game/Creature.cpp:215
#2  0x0000000000908cc6 in Unit::CleanupsBeforeDelete (this=0x7fff05c6e080) at /server/src/dsc_live/src/game/Unit.cpp:11867
#3  0x0000000000ac9ae4 in Visit (m=..., this=<optimized out>) at /server/src/dsc_live/src/game/ObjectGridLoader.cpp:307
> 0x000000003f800000 - это же 1.0f
явный вызов по такому адресу компилятор не сгенерирует.
а вот если сбился указатель на таблицу виртуальных функций, начав указывать на какой-то массив из флоатов, то вполне реально

> OnCreatureCreate - виртуальная? если да, то кто-то побил память m_zoneScript (а именно - первые sizeof(void*) байт), расстрел памяти может быть вызван вооообще чем угодно в любой области программы
источник

Д

Дима in supapro.cxx
Александр Караев
> 0x000000003f800000 - это же 1.0f
явный вызов по такому адресу компилятор не сгенерирует.
а вот если сбился указатель на таблицу виртуальных функций, начав указывать на какой-то массив из флоатов, то вполне реально

> OnCreatureCreate - виртуальная? если да, то кто-то побил память m_zoneScript (а именно - первые sizeof(void*) байт), расстрел памяти может быть вызван вооообще чем угодно в любой области программы
да, виртуальный) спасибо, сейчас буду рыть
источник

Д

Дима in supapro.cxx
жаль лайки здесь нельзя ставить)
источник

F

Fuzzytoozy in supapro.cxx
Александр Караев
> 0x000000003f800000 - это же 1.0f
явный вызов по такому адресу компилятор не сгенерирует.
а вот если сбился указатель на таблицу виртуальных функций, начав указывать на какой-то массив из флоатов, то вполне реально

> OnCreatureCreate - виртуальная? если да, то кто-то побил память m_zoneScript (а именно - первые sizeof(void*) байт), расстрел памяти может быть вызван вооообще чем угодно в любой области программы
А почему не сгенерирует?
источник

АК

Александр Караев... in supapro.cxx
Fuzzytoozy
А почему не сгенерирует?
вероятность данного события крайне мала
источник

F

Fuzzytoozy in supapro.cxx
Но если это so с стрипнутыми символами мы разве тоже самое не увидим?
источник

F

Fuzzytoozy in supapro.cxx
В плане прямой вызов
источник

z

zeroid in supapro.cxx
Fuzzytoozy
Но если это so с стрипнутыми символами мы разве тоже самое не увидим?
Это битый фрейм, поэтому нет символа
источник

F

Fuzzytoozy in supapro.cxx
Вопрос был в другом
источник

F

Fuzzytoozy in supapro.cxx
Не конкретно этот случай, а вообще. В случае сошки с стрипнутыми символами картина будет аналогичная? Прямой вызов какого-то адреса?
источник

АК

Александр Караев... in supapro.cxx
Fuzzytoozy
Не конкретно этот случай, а вообще. В случае сошки с стрипнутыми символами картина будет аналогичная? Прямой вызов какого-то адреса?
да, будет прямой вызов какого-то адреса, как и тут.
моё утверждение состояло в том, что очень мала вероятность, что компилятор расположил функцию по адресу, совпадающему с битовым представлением константы 1.0f, при этом ровно на этой функции и произошёл краш
источник