-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SIGABRT after set fire in the basement. #10629
Comments
Does it reproduce on the current build without any changes? A lot of things happened in the last 18 days. |
On current build It reproduced. commit 5d24962 gdb message is: [Thread 0x7fffe6149700 (LWP 5288) exited] Objects involved in the operation: Program received signal SIGABRT, Aborted. |
Interesting. Here's the line referenced originally: https://github.com/CleverRaven/Cataclysm-DDA/blob/703d730/src/field.cpp#L752, which looks right for the stated error (incrementing a singular iterator). Here's the new error line: https://github.com/CleverRaven/Cataclysm-DDA/blob/5d24962/src/field.cpp#L734, which also looks right for the stated error (dereferencing a singular iterator). Of note, in both cases we're talking about an iterator acquired from |
Thank you for informing. If ammo is cookoff, calls g->explosion: https://github.com/CleverRaven/Cataclysm-DDA/blob/master/src/field.cpp#L628 Then game::explosion() calls map::shoot() : https://github.com/CleverRaven/Cataclysm-DDA/blob/master/src/game.cpp#L6906 Then map::shoot() checks damaged item, erases damaged item. After container changes, it seems that I changed code at game::explosion for testing.
to
Then it is not remove item on field (x,y), And the crash is no longer present. |
Fixed by #10684 Reopen if you see it again. |
No more crash on my save file. Thank you. |
Version : 0.B-1110-g703d730-dirty
Compiled at Ubuntu/ with gcc.
I set a fire in the basement(there were black widow spiders), and press '.' key to pass my turn.
Then I got a crash.
The second attempt also crashed, and I have save file.
gdb message is :
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff0071700 (LWP 3235)]
[New Thread 0x7fffeab83700 (LWP 3236)]
[New Thread 0x7fffe6149700 (LWP 3237)]
[Thread 0x7fffe6149700 (LWP 3237) exited]
/usr/include/c++/4.8/debug/safe_iterator.h:293:error: attempt to increment
a singular iterator.
Objects involved in the operation:
iterator "this" @ 0x0x7fffffffd340 {
type = N11__gnu_debug14_Safe_iteratorIN9__gnu_cxx17__normal_iteratorIPK4itemNSt9__cxx19986vectorIS3_SaIS3_EEEEENSt7__debug6vectorIS3_S8_EEEE (constant iterator);
state = singular;
references sequence with type `NSt7__debug6vectorI4itemSaIS1_EEE' @ 0x0x7fffffffd340
}
Program received signal SIGABRT, Aborted.
0x00007ffff6af7bb9 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 ../nptl/sysdeps/unix/sysv/linux/raise.c: 그런 파일이나 디렉터리가 없습니다.(=means no such file or directory)
(gdb) where
#0 0x00007ffff6af7bb9 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007ffff6afafc8 in __GI_abort () at abort.c:89
#2 0x00007ffff7453175 in __gnu_debug::_Error_formatter::_M_error() const () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x0000000000414a3a in __gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<item const*, std::__cxx1998::vector<item, std::allocator > >, std::__debug::vector<item, std::allocator > >::operator++ (this=0x7fffffffd340)
#4 0x00000000005efd06 in map::process_fields_in_submap (this=0x3d453d8, current_submap=0x6519110, submap_x=5, submap_y=4)
#5 0x00000000005edb50 in map::process_fields (this=0x3d453d8) at src/field.cpp:417
#6 0x0000000000611c13 in game::do_turn (this=0x3d45240) at src/game.cpp:1486
#7 0x00000000008a2eab in main (argc=0, argv=0x7fffffffde70) at src/main.cpp:292
(gdb)
The text was updated successfully, but these errors were encountered: