Welcome to the Builder Academy

Question Possible bug in latest tbamud release?

More
17 Jan 2013 01:29 #1361 by Vatiken

zusuk wrote: Here you go, it DOES crash stock TBA but not my MUD for whatever reason.

Code:
luminari@luminarimud.com [~/tbamud]# gdb bin/circle lib/core.tmp.14049 GNU gdb (GDB) CentOS (7.0.1-42.el5.centos.1) Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i386-redhat-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /home/luminari/tbamud/bin/circle...done. [New Thread 14049] Reading symbols from /lib/libcrypt.so.1...(no debugging symbols found)...done. Loaded symbols for /lib/libcrypt.so.1 Reading symbols from /lib/libc.so.6...(no debugging symbols found)...done. Loaded symbols for /lib/libc.so.6 Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done. Loaded symbols for /lib/ld-linux.so.2 Reading symbols from /lib/libnss_files.so.2...(no debugging symbols found)...done. Loaded symbols for /lib/libnss_files.so.2 Reading symbols from /lib/libnss_dns.so.2...(no debugging symbols found)...done. Loaded symbols for /lib/libnss_dns.so.2 Reading symbols from /lib/libresolv.so.2...(no debugging symbols found)...done. Loaded symbols for /lib/libresolv.so.2 Core was generated by `bin/circle -q 4102'.

Program terminated with signal 11, Segmentation fault.
#0 0x080e653a in perform_new_char_dupe_check (d=0xae3b528, arg=0xbfa946e4 "y") at interpreter.c:1186
1186 if (!strcmp(GET_NAME(k->character), GET_NAME(d->character))) {
(gdb) list
1181
1182 if (k == d)
1183 continue;
1184

Code:
1185 /* Do the player names match? */ 1186 if (!strcmp(GET_NAME(k->character), GET_NAME(d->character))) { 1187 /* Check the other character is still in creation? */ 1188 if ((STATE(k) > CON_PLAYING) && (STATE(k) < CON_QCLASS)) { 1189 /* Boot the older one */ 1190 k->character->desc = NULL; (gdb) info local k = 0xae37e80 (gdb) up #1 nanny (d=0xae3b528, arg=0xbfa946e4 "y") at interpreter.c:1451 1451 perform_new_char_dupe_check(d); (gdb) list 1446 write_to_output(d, "Sorry, new players can't be created at the moment.\r\n"); 1447 mudlog(NRM, LVL_GOD, TRUE, "Request for new char %s denied from [%s] (wizlock)", GET_PC_NAME(d->character), d->host); 1448 STATE(d) = CON_CLOSE; 1449 return; 1450 } 1451 perform_new_char_dupe_check(d); 1452 write_to_output(d, "New character.\r\nGive me a password for %s: ", GET_PC_NAME(d->character)); 1453 echo_off(d); 1454 STATE(d) = CON_NEWPASSWD; 1455 } else if (*arg == 'n' || *arg == 'N') { (gdb) info local load_result = <value optimized out> player_i = <value optimized out> olc_functions = {{state = 18, func = 0x810e710 <oedit_parse>}, {state = 20, func = 0x81460d0 <zedit_parse>}, {state = 22, func = 0x8133720 <sedit_parse>}, {state = 21, func = 0x80ee570 <medit_parse>}, {state = 19, func = 0x8131390 <redit_parse>}, { state = 24, func = 0x8092ca0 <cedit_parse>}, {state = 26, func = 0x80b14a0 <trigedit_parse>}, {state = 25, func = 0x808ae90 <aedit_parse>}, {state = 27, func = 0x80d6420 <hedit_parse>}, {state = 28, func = 0x812b8b0 <qedit_parse>}, { state = 29, func = 0x81241e0 <prefedit_parse>}, {state = 30, func = 0x80e2230 <ibtedit_parse>}, {state = 31, func = 0x80f2ac0 <msgedit_parse>}, {state = -1, func = 0}} (gdb) up #2 0x0809bee0 in game_loop (local_mother_desc=3) at comm.c:883 883 nanny(d, comm); (gdb) list 878 if (d->showstr_count) /* Reading something w/ pager */ 879 show_string(d, comm); 880 else if (d->str) /* Writing boards, mail, etc. */ 881 string_add(d, comm); 882 else if (STATE(d) != CON_PLAYING) /* In menus, etc. */ 883 nanny(d, comm); 884 else { /* else: we're playing normally. */ 885 if (aliased) /* To prevent recursive aliases. */ 886 d->has_prompt = TRUE; /* To get newline before next cmd output. */ 887 else if (perform_alias(d, comm, sizeof(comm))) /* Run it through aliasing system */ (gdb) info local input_set = {__fds_bits = {512, 0 <repeats 31 times>}} output_set = {__fds_bits = {1008, 0 <repeats 31 times>}} exc_set = {__fds_bits = {0 <repeats 32 times>}} null_set = {__fds_bits = {0 <repeats 32 times>}} last_time = {tv_sec = 1358273696, tv_usec = 990806} opt_time = {tv_sec = 0, tv_usec = 100000} process_time = {tv_sec = 0, tv_usec = 746} temp_time = {tv_sec = 0, tv_usec = 99254} before_sleep = {tv_sec = 1358273696, tv_usec = 891552} now = {tv_sec = 1358273696, tv_usec = 991539} timeout = {tv_sec = 0, tv_usec = 0} comm = "y\000stcharthree\000\211\000\000\020\002\000\310G\251\277a\272\211\000\000\020\002\000\030$\220\000P\222\365\ta\272\211\000\000\020\000\000d\241\230\000d\241\230\001\260\332\217\000\364\217\230\000 \000\000\000\263G\251\277a\272\211\000\364\217\230\000p\241\230\000\360\377\331\n@\241\230\000\f\000\000\000@\241\230\000\000\000\000\000a\272\211\000\000\000\000\000 \000\000\000\343G\251\277a\272\211\000p\241\230\000p\241\230\000M\333\217\000a\272\211\000\f\000\000\000@\241\230", '\000' <repeats 13 times>, " \000\000\000\023H\251\277a\272\211\000p\241\230\000 \000\000\000#H\251\277p\245\230\000\f\000\000\000p\241\230\000\000\000\000\000@\241\230\000\f\000\000\000@\241\230", '\000' <repeats 21 times>, "\020\000\000\000p\241\230\000\004\000\000\000\002", '\000' <repeats 19 times>"\260, \000\000\000p\241\230\000\004\000\000\000\002\000\000\000\000\000\000\000\370-\025\n\300n\341\n\002\000\000\000\000\000\000\000\320\303\341\n\205\305\201\000\320"... d = <value optimized out> next_d = <value optimized out> missed_pulses = <value optimized out> maxdesc = <value optimized out> aliased = 0 (gdb) up #3 0x0809d037 in init_game (argc=Cannot access memory at address 0x0 ) at comm.c:533 533 game_loop(mother_desc); (gdb) list 528 if (fCopyOver) /* reload players */ 529 copyover_recover(); 530 531 log("Entering game loop."); 532 533 game_loop(mother_desc); 534 535 Crash_save_all(); 536 537 log("Closing all sockets."); (gdb) info local No locals. (gdb) up #4 main (argc=Cannot access memory at address 0x0 ) at comm.c:353 353 init_game(port); (gdb) list 348 349 if (scheck) 350 boot_world(); 351 else { 352 log("Running game on port %d.", port); 353 init_game(port); 354 } 355 356 log("Clearing game world."); 357 destroy_db(); (gdb) info local pos = <value optimized out> dir = 0x9f53068 "lib" (gdb) up Initial frame selected; you cannot go up. (gdb) list 358 359 if (!scheck) { 360 log("Clearing other memory."); 361 free_bufpool(); /* comm.c */ 362 free_player_index(); /* players.c */ 363 free_messages(); /* fight.c */ 364 free_text_files(); /* db.c */ 365 board_clear_all(); /* boards.c */ 366 free(cmd_sort_info); /* act.informative.c */ 367 free_command_list(); /* act.informative.c */ (gdb) info local pos = <value optimized out> dir = 0x9f53068 "lib" (gdb) up Initial frame selected; you cannot go up.


tbaMUD developer/programmer

Please Log in or Create an account to join the conversation.

Time to create page: 0.163 seconds