์ค์๊ฐ ๋ชจ๋์์ ์๋ฌด ์ค ์ถฉ๋
gdb ๋ชฉ๋ก
`์ค๋ ๋ 1 "๋ฉ์ธ"์์ ์ ํธ SIGSEGV, ๋ถํ ์ค๋ฅ.
OpenApoc :: BattleHazard :: update (this = 0x60000000d, state = ..., ticks = 1)
/home/atrosha/OpenApoc/game/state/battle/battlehazard.cpp:490์์
490 if (ticksUntilVisible> 0)
(gdb) ์ ๋ณด ์คํ
at /home/atrosha/OpenApoc/game/state/battle/battlehazard.cpp:490
state=..., ticks=1)
at /home/atrosha/OpenApoc/game/state/battle/battle.cpp:1675
at /home/atrosha/OpenApoc/game/state/gamestate.cpp:959
at /home/atrosha/OpenApoc/game/ui/tileview/battleview.cpp:1443
initialStage=...) at /home/atrosha/OpenApoc/framework/framework.cpp:584
at /home/atrosha/OpenApoc/game/main.cpp:26`
ํ , BattleHazard :: update ()๊ฐ ์ ํฌ ๊ฐ์ฒด์์ ํธ์ถ๋๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. -0x60000000d๋ ํ ํฌ์ธํฐ์ ๋ํด ์ ์ ์ ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค ....
์ด๊ฒ์ ๋ฌดํจํ ๋ ๋ฐ๋ณต์ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค : BattleHazard::update
๋ ๊ฒฐ๊ตญ BattleHazard::expand
๋ฅผ ํธ์ถ ํ ์ ์์ผ๋ฉฐ, ๊ทธ๋ฌ๋ฉด ๊ทผ์ฒ BattleHazard์์ die()
๋ฅผ ํธ์ถ ํ ์ ์์ต๋๋ค. ํ๊ดด ๋ ์ํ์ด ๋ฐ๋ณต์์ ๋ค์ ์ํ์ด ๋ฐ์ํ๋ฉด Battle::update
์์ ์ฌ์ฉ ๋ ๋ฐ๋ณต๊ธฐ๊ฐ ๋ฌดํจํ๋ฉ๋๋ค (https://en.cppreference.com/w/cpp/container/set/erase ์ฐธ์กฐ).
์ด๊ฒ์ด ์ ๊ฐ ์๊ฐํ ์์๋ ์ ์ผํ ์ค๋ช ์ ๋๋ค
๊ทธ๋ฆฌ๊ณ ๋์ค์ ์ค๋ฅ์์ด ์ค์๊ฐ ๋ชจ๋๋ก ๊ทธ ์๋ฌด๋ฅผ ๋ง์ณค์ต๋๋ค.
๋๋ฌด ์ด์ํด.
์ข๊ณ ๋น ๋ฅธ ์๋ต. ๋ค์ ์์์์ ์ธ๊ธํด๋ ๋ ๊น์?
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
536์ ์ด๊ฒ์ ๊ณ ์น ์ ์์ง๋ง์ด ๋ฒ๊ทธ๋ ๋ธ๋ฃจ ๋ฌธ์์ ํ ๋ฒ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ํ ์คํธํ๊ธฐ ์ด๋ ค์ธ ๊ฒ์ ๋๋ค. pull ์์ฒญ์ ๋ณํฉํ๋ฉด์ด ๋ฌธ์ ๋ฅผ ๋ซ๊ณ ๋ฒ๊ทธ๊ฐ ์ง์๋๋ฉด ๋ค์ ์ด์ด์ผํฉ๋๋ค.