CVS problems
Moderator: Forum Moderators
Forum rules
Before reporting issues in this section, you must read the following topic:
Before reporting issues in this section, you must read the following topic:
CVS problems
Using the CVS of approx 8am today, I've been encountering problems.
Initially there was a "hanging" problem apparently similar to my earlier ones - ie hanging on the defender's first response to an attack.
Having checked that the problem was not present in the recent 0.7.3 release, I tried the CVS version again, and obtained different results - segfault after a few attacks/counterattacks, on the first combat in the game.
gdb backtrace :
This suggests the problem lies in the undrawing of floating labels, and turning off that option seems to avoid the problem.
However, the problem does not appear to be caused by the first undrawing - it appears to occur after two or three have been successfully undrawn.
Initially there was a "hanging" problem apparently similar to my earlier ones - ie hanging on the defender's first response to an attack.
Having checked that the problem was not present in the recent 0.7.3 release, I tried the CVS version again, and obtained different results - segfault after a few attacks/counterattacks, on the first combat in the game.
gdb backtrace :
Code: Select all
(gdb) bt
#0 font::undraw_floating_labels(SDL_Surface*) (screen=0x8260a98)
at atomicity.h:40
#1 0x081fbfc4 in CVideo::flip() (this=0xffffffff) at video.cpp:305
#2 0x080b5b45 in display::unit_attack_ranged(gamemap::location const&, gamemap::location const&, int, attack_type const&) (this=0xbfffcdc0, a=@0xbfffbb30,
b=@0xbfffc494, damage=2, attack=@0x8887ac0) at display.cpp:2011
#3 0x080b6d5c in display::unit_attack(gamemap::location const&, gamemap::location const&, int, attack_type const&) (this=0xbfffcdc0, a=@0xbfffbb30,
b=@0xbfffc494, damage=2, attack=@0x8887ac0) at display.cpp:2088
#4 0x0805cb67 in attack(display&, gamemap const&, std::vector<team, std::allocator<team> >&, gamemap::location const&, gamemap::location const&, int, std::map<gamemap::location, unit, std::less<gamemap::location>, std::allocator<std::pair<gamemap::location const, std::map> > >&, gamestatus const&, game_data const&, bool) (gui=@0xbfffcdc0, map=@0xbfffd760, teams=@0xbfffd710,
attacker=@0xbfffc494, defender=@0xbfffbb30, attack_with=2,
units=@0xbfffd750, state=@0xbfffd800, info=@0xbfffdf60) at stl_vector.h:515
#5 0x0816fbfa in turn_info::left_click(SDL_MouseButtonEvent const&) (
this=0xbfffc410, event=@0xbfffd710) at playturn.cpp:701
#6 0x0816c733 in turn_info::mouse_press(SDL_MouseButtonEvent const&) (
this=0xbfffc410, event=@0xbfffc0e0) at playturn.cpp:423
#7 0x0816b73a in turn_info::handle_event(SDL_Event const&) (this=0xbfffc410,
event=@0xbfffc0e0) at playturn.cpp:287
#8 0x080bdddc in events::pump() () at stl_vector.h:515
However, the problem does not appear to be caused by the first undrawing - it appears to occur after two or three have been successfully undrawn.
Unfortunately the current CVS (as of approx 10.00pm GMT) does not make, finishing as follows :
Looks like unit_display is not getting compiled.
Code: Select all
g++ -I/usr/local/include/SDL -D_REENTRANT -DWESNOTH_PATH=\"/usr/local/share/wesnoth\" -g -O2 -DDEBUG -ggdb3 -L/usr/local/lib -Wl,-rpath,/usr/local/lib -lSDL -lpthread -lSDL_image -lSDL_mixer -lSDL_net -lSDL_ttf -o wesnoth about.o actions.o ai.o ai_attack.o ai_move.o builder.o cavegen.o config.o cursor.o dialogs.o display.o events.o filesystem.o font.o game.o game_config.o game_events.o gamestatus.o hotkeys.o image.o intro.o key.o language.o log.o map.o map_label.o mapgen.o mapgen_dialog.o mouse.o multiplayer.o multiplayer_client.o multiplayer_connect.o multiplayer_lobby.o network.o pathfind.o playlevel.o playturn.o preferences.o race.o replay.o reports.o sdl_utils.o show_dialog.o sound.o statistics.o team.o terrain.o theme.o tooltips.o unit.o unit_types.o video.o button.o combo.o menu.o scrollbar.o slider.o textbox.o widget.o
actions.o(.text+0x7ae3): In function `attack(display&, gamemap const&, std::vector<team, std::allocator<team> >&, gamemap::location const&, gamemap::location const&, int, std::map<gamemap::location, unit, std::less<gamemap::location>, std::allocator<std::pair<gamemap::location const, std::map> > >&, gamestatus const&, game_data const&, bool)':
/usr/local/include/c++/3.3.3/bits/stl_vector.h:515: undefined reference to `unit_display::unit_attack(display&, std::map<gamemap::location, unit, std::less<gamemap::location>, std::allocator<std::pair<gamemap::location const, unit> > >&, gamemap const&, gamemap::location const&, gamemap::location const&, int, attack_type const&)'
actions.o(.text+0x8229):/usr/local/include/c++/3.3.3/bits/stl_vector.h:515: undefined reference to `unit_display::unit_attack(display&, std::map<gamemap::location, unit, std::less<gamemap::location>, std::allocator<std::pair<gamemap::location const, unit> > >&, gamemap const&, gamemap::location const&, gamemap::location const&, int, attack_type const&)'
actions.o(.text+0xffb1): In function `move_unit(display*, game_data const&, gamestatus const&, gamemap const&, std::map<gamemap::location, unit, std::less<gamemap::location>, std::allocator<std::pair<gamemap::location const, unit> > >&, std::vector<team, std::allocator<std::map<gamemap::location, unit, std::less<gamemap::location>, std::allocator<std::pair<gamemap::location const, unit> > > > >&, std::allocator<std::pair<gamemap::location const, unit> ><gamemap::location, std::allocator<gamemap::location> > const&, replay*, std::deque<undo_action, std::allocator<std::allocator<std::pair<gamemap::location const, unit> ><gamemap::location, std::allocator<gamemap::location> > > >*, gamemap::location*)':
/home/david/src/wesnoth/src/actions.cpp:1531: undefined reference to `unit_display::move_unit(display&, gamemap const&, std::vector<gamemap::location, std::allocator<gamemap::location> > const&, unit&)'
ai.o(.text+0x1c59): In function `ai_interface::move_unit(gamemap::location, gamemap::location, std::map<gamemap::location, paths, std::less<gamemap::location>, std::allocator<std::pair<gamemap::location const, paths> > >&)':
/home/david/src/wesnoth/src/ai.cpp:223: undefined reference to `unit_display::move_unit(display&, gamemap const&, std::vector<gamemap::location, std::allocator<gamemap::location> > const&, unit&)'
game_events.o(.text+0x3125): In function `(anonymous namespace)::event_handler::handle_event_command((anonymous namespace)::queued_event const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config const&)':
/home/david/src/wesnoth/src/game_events.cpp:438: undefined reference to `unit_display::move_unit(display&, gamemap const&, std::vector<gamemap::location, std::allocator<gamemap::location> > const&, unit&)'
game_events.o(.text+0x7719): In function `(anonymous namespace)::event_handler::handle_event_command((anonymous namespace)::queued_event const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config const&)':
/usr/local/include/c++/3.3.3/bits/stl_tree.h:202: undefined reference to `unit_display::unit_die(display&, gamemap::location const&, unit const&)'
playturn.o(.text+0xacaf): In function `turn_info::undo()':
/home/david/src/wesnoth/src/playturn.cpp:1154: undefined reference to `unit_display::move_unit(display&, gamemap const&, std::vector<gamemap::location, std::allocator<gamemap::location> > const&, unit&)'
playturn.o(.text+0xc277): In function `turn_info::redo()':
/home/david/src/wesnoth/src/playturn.cpp:1224: undefined reference to `unit_display::move_unit(display&, gamemap const&, std::vector<gamemap::location, std::allocator<gamemap::location> > const&, unit&)'
replay.o(.text+0x6130): In function `do_replay(display&, gamemap const&, game_data const&, std::map<gamemap::location, unit, std::less<gamemap::location>, std::allocator<std::pair<gamemap::location const, unit> > >&, std::vector<team, std::allocator<team> >&, int, gamestatus const&, game_state&, replay*)':
/usr/local/include/c++/3.3.3/bits/stl_tree.h:202: undefined reference to `unit_display::move_unit(display&, gamemap const&, std::vector<gamemap::location, std::allocator<gamemap::location> > const&, unit&)'
collect2: ld returned 1 exit status
make[3]: *** [wesnoth] Error 1
make[3]: Leaving directory `/home/user/src/wesnoth/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/user/src/wesnoth/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/user/src/wesnoth'
make: *** [all] Error 2