Openapoc: [Crash] em uma missão avistada alienígena (falha de segmentação)

Criado em 9 mar. 2019  ·  5Comentários  ·  Fonte: OpenApoc/OpenApoc

Bater durante a missão em modo de tempo real

listagem gdb
`Linha 1" principal "de sinal recebido SIGSEGV, Falha de segmentação.
OpenApoc :: BattleHazard :: update (this = 0x60000000d, state = ..., ticks = 1)
em /home/atrosha/OpenApoc/game/state/battle/battlehazard.cpp:490
490 if (ticksUntilVisible> 0)
pilha de informações (gdb)

0 OpenApoc :: BattleHazard :: update (this = 0x60000000d, state = ..., ticks = 1)

at /home/atrosha/OpenApoc/game/state/battle/battlehazard.cpp:490

1 0x00000000007378f1 em OpenApoc :: Battle :: update (this =,

state=..., ticks=1)
at /home/atrosha/OpenApoc/game/state/battle/battle.cpp:1675

2 0x00000000008aa757 em OpenApoc :: GameState :: update (this = 0x5989410, ticks = 1)

at /home/atrosha/OpenApoc/game/state/gamestate.cpp:959

3 0x000000000052bf2d em OpenApoc :: BattleView :: update (this =)

at /home/atrosha/OpenApoc/game/ui/tileview/battleview.cpp:1443

4 0x00000000004569b8 em OpenApoc :: Framework :: run (this = 0xfd14d0,

initialStage=...) at /home/atrosha/OpenApoc/framework/framework.cpp:584

5 0x000000000043a1d4 no principal (argc =, argv =)

at /home/atrosha/OpenApoc/game/main.cpp:26`
!BUG! HIGH PRIORITY !BUG! low priority

Comentários muito úteis

536 pode corrigir isso, mas será difícil de testar, pois esse bug ocorre uma vez em uma lua azul. Devemos encerrar esse problema assim que mesclar a solicitação pull e reabrir se o bug persistir.

Todos 5 comentários

Hmm, parece que BattleHazard :: update () está sendo chamado em um objeto lixo -0x60000000d não parece lógico para um ponteiro de heap ....

Acho que isso é causado por um iterador invalidado: BattleHazard::update pode acabar chamando BattleHazard::expand , que por sua vez pode chamar die() em um BattleHazard próximo. Se o perigo destruído for o próximo na iteração, o iterador usado em Battle::update torna-se inválido (consulte https://en.cppreference.com/w/cpp/container/set/erase)

Esta é a única explicação que consigo pensar

529 faz o jogo travar com mais frequência nessa missão. Mas ninguém reage a isso. ehhh ...

Além disso, terminei essa missão no modo de tempo real sem nenhum erro posterior.

Tão estranho.

536 pode corrigir isso, mas será difícil de testar, pois esse bug ocorre uma vez em uma lua azul. Devemos encerrar esse problema assim que mesclar a solicitação pull e reabrir se o bug persistir.

Resposta agradável e rápida. Posso mencioná-lo no meu próximo vídeo?

Esta página foi útil?
0 / 5 - 0 avaliações