When pasting lots of commands in a shop (I haven't tested whether it segfaults in other places too), ToME segfaults. Version: 2.3.4, x11 UI

(for brevity)

(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xf7d80721 in raise () from /opt/lib32/lib/libc.so.6
#2  0xf7d81ef8 in abort () from /opt/lib32/lib/libc.so.6
#3  0xf7db605b in __libc_message () from /opt/lib32/lib/libc.so.6
#4  0xf7dbbcd0 in malloc_printerr () from /opt/lib32/lib/libc.so.6
#5  0xf7dbd369 in free () from /opt/lib32/lib/libc.so.6
#6  0xf7efe56d in XFree () from /opt/lib32/usr/lib/libX11.so.6
#7  0x080d2849 in CheckEvent (wait=<value optimized out>) at main-x11.c:2081
#8  0x080d2fef in Term_xtra_x11 (n=1, v=0) at main-x11.c:2440
#9  0x080d661f in Term_xtra (n=1, v=1) at z-term.c:494
#10 0x080d8216 in Term_inkey (ch=0xffa5eb55 "", wait=1 '\001', take=1 '\001') at z-term.c:2535
#11 0x080e613f in inkey () at util.c:1806
#12 0x080e6fc0 in request_command (shopping=1) at util.c:3766
#13 0x081b9629 in do_cmd_store () at store.c:3861
#14 0x080edb83 in process_command () at dungeon.c:3840
#15 0x080eef0f in process_player () at dungeon.c:4990
#16 0x080ef7f6 in dungeon () at dungeon.c:5442
#17 0x080f4d3b in play_game (new_game=1 '\001') at dungeon.c:5934
#18 0x081e62a0 in main (argc=1, argv=0xffa60144) at main.c:1063

And here's the full trace:

(gdb) bt full
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xf7d80721 in raise () from /opt/lib32/lib/libc.so.6
No symbol table info available.
#2  0xf7d81ef8 in abort () from /opt/lib32/lib/libc.so.6
No symbol table info available.
#3  0xf7db605b in __libc_message () from /opt/lib32/lib/libc.so.6
No symbol table info available.
#4  0xf7dbbcd0 in malloc_printerr () from /opt/lib32/lib/libc.so.6
No symbol table info available.
#5  0xf7dbd369 in free () from /opt/lib32/lib/libc.so.6
No symbol table info available.
#6  0xf7efe56d in XFree () from /opt/lib32/usr/lib/libX11.so.6
No symbol table info available.
#7  0x080d2849 in CheckEvent (wait=<value optimized out>) at main-x11.c:2081
        press = <value optimized out>
        x = <value optimized out>
        y = <value optimized out>
        z = <value optimized out>
        old_td = (term_data *) 0x8249740
        xev_body = {type = 31, xany = {type = 31, serial = 11651, send_event = 1, display = 0x8280e30, window = 31457539}, xkey = {type = 31,
    serial = 11651, send_event = 1, display = 0x8280e30, window = 31457539, root = 1, subwindow = 31, time = 31, x = 53569200, y = 225, x_root = 241,
    y_root = 250, state = 512, keycode = 2, same_screen = 1}, xbutton = {type = 31, serial = 11651, send_event = 1, display = 0x8280e30,
    window = 31457539, root = 1, subwindow = 31, time = 31, x = 53569200, y = 225, x_root = 241, y_root = 250, state = 512, button = 2, same_screen = 1},
  xmotion = {type = 31, serial = 11651, send_event = 1, display = 0x8280e30, window = 31457539, root = 1, subwindow = 31, time = 31, x = 53569200,
    y = 225, x_root = 241, y_root = 250, state = 512, is_hint = 2 '\002', same_screen = 1}, xcrossing = {type = 31, serial = 11651, send_event = 1,
    display = 0x8280e30, window = 31457539, root = 1, subwindow = 31, time = 31, x = 53569200, y = 225, x_root = 241, y_root = 250, mode = 512,
    detail = 2, same_screen = 1, focus = 0, state = 0}, xfocus = {type = 31, serial = 11651, send_event = 1, display = 0x8280e30, window = 31457539,
    mode = 1, detail = 31}, xexpose = {type = 31, serial = 11651, send_event = 1, display = 0x8280e30, window = 31457539, x = 1, y = 31, width = 31,
    height = 53569200, count = 225}, xgraphicsexpose = {type = 31, serial = 11651, send_event = 1, display = 0x8280e30, drawable = 31457539, x = 1,
    y = 31, width = 31, height = 53569200, count = 225, major_code = 241, minor_code = 250}, xnoexpose = {type = 31, serial = 11651, send_event = 1,
    display = 0x8280e30, drawable = 31457539, major_code = 1, minor_code = 31}, xvisibility = {type = 31, serial = 11651, send_event = 1,
    display = 0x8280e30, window = 31457539, state = 1}, xcreatewindow = {type = 31, serial = 11651, send_event = 1, display = 0x8280e30,
    parent = 31457539, window = 1, x = 31, y = 31, width = 53569200, height = 225, border_width = 241, override_redirect = 250}, xdestroywindow = {
    type = 31, serial = 11651, send_event = 1, display = 0x8280e30, event = 31457539, window = 1}, xunmap = {type = 31, serial = 11651, send_event = 1,
    display = 0x8280e30, event = 31457539, window = 1, from_configure = 31}, xmap = {type = 31, serial = 11651, send_event = 1, display = 0x8280e30,
    event = 31457539, window = 1, override_redirect = 31}, xmaprequest = {type = 31, serial = 11651, send_event = 1, display = 0x8280e30,
    parent = 31457539, window = 1}, xreparent = {type = 31, serial = 11651, send_event = 1, display = 0x8280e30, event = 31457539, window = 1,
    parent = 31, x = 31, y = 53569200, override_redirect = 225}, xconfigure = {type = 31, serial = 11651, send_event = 1, display = 0x8280e30,
    event = 31457539, window = 1, x = 31, y = 31, width = 53569200, height = 225, border_width = 241, above = 250, override_redirect = 512}, xgravity = {
    type = 31, serial = 11651, send_event = 1, display = 0x8280e30, event = 31457539, window = 1, x = 31, y = 31}, xresizerequest = {type = 31,
    serial = 11651, send_event = 1, display = 0x8280e30, window = 31457539, width = 1, height = 31}, xconfigurerequest = {type = 31, serial = 11651,
    send_event = 1, display = 0x8280e30, parent = 31457539, window = 1, x = 31, y = 31, width = 53569200, height = 225, border_width = 241, above = 250,
    detail = 512, value_mask = 2}, xcirculate = {type = 31, serial = 11651, send_event = 1, display = 0x8280e30, event = 31457539, window = 1,
    place = 31}, xcirculaterequest = {type = 31, serial = 11651, send_event = 1, display = 0x8280e30, parent = 31457539, window = 1, place = 31},
  xproperty = {type = 31, serial = 11651, send_event = 1, display = 0x8280e30, window = 31457539, atom = 1, time = 31, state = 31}, xselectionclear = {
    type = 31, serial = 11651, send_event = 1, display = 0x8280e30, window = 31457539, selection = 1, time = 31}, xselectionrequest = {type = 31,
    serial = 11651, send_event = 1, display = 0x8280e30, owner = 31457539, requestor = 1, selection = 31, target = 31, property = 53569200, time = 225},
  xselection = {type = 31, serial = 11651, send_event = 1, display = 0x8280e30, requestor = 31457539, selection = 1, target = 31, property = 31,
    time = 53569200}, xcolormap = {type = 31, serial = 11651, send_event = 1, display = 0x8280e30, window = 31457539, colormap = 1, new = 31, state = 31},
  xclient = {type = 31, serial = 11651, send_event = 1, display = 0x8280e30, window = 31457539, message_type = 1, format = 31, data = {
---Type <return> to continue, or q <return> to quit---
      b = "\037\000\000\000�f1\003�\000\000\000�\000\000\000�\000\000", s = {31, 0, 26288, 817, 225, 0, 241, 0, 250, 0}, l = {31, 53569200, 225, 241,
        250`}}}`, xmapping = {type = 31, serial = 11651, send_event = 1, display = 0x8280e30, window = 31457539, request = 1, first_keycode = 31,
    count = 31}, xerror = {type = 31, display = 0x2d83, resourceid = 1, serial = 136842800, error_code = 3 '\003', request_code = 1 '\001',
    minor_code = 224 '�'}, xkeymap = {type = 31, serial = 11651, send_event = 1, display = 0x8280e30, window = 31457539,
    key_vector = "\001\000\000\000\037\000\000\000\037\000\000\000�f1\003�\000\000\000�\000\000\000�\000\000\000\000\002\000"}, pad = {31, 11651, 1,
    136842800, 31457539, 1, 31, 31, 53569200, 225, 241, 250, 512, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}}
        td = <value optimized out>
        iwin = (infowin *) 0x7
        i = <value optimized out>
#8  0x080d2fef in Term_xtra_x11 (n=1, v=0) at main-x11.c:2440
No locals.
#9  0x080d661f in Term_xtra (n=1, v=1) at z-term.c:494
No locals.
#10 0x080d8216 in Term_inkey (ch=0xffa5eb55 "", wait=1 '\001', take=1 '\001') at z-term.c:2535
No locals.
#11 0x080e613f in inkey () at util.c:1806
        v = <value optimized out>
        kk = 0 '\0'
        ch = 0 '\0'
        done = 1 '\001'
        old = (term *) 0x8249740
#12 0x080e6fc0 in request_command (shopping=1) at util.c:3766
        i = 6
        cmd = -22416
        cmd_char = 0 '\0'
        mode = 0
        act = 0x569c <Address 0x569c out of bounds>
#13 0x081b9629 in do_cmd_store () at store.c:3861
        which = <value optimized out>
        maintain_num = <value optimized out>
        i = <value optimized out>
        recreate = 0 '\0'
        c_ptr = <value optimized out>
#14 0x080edb83 in process_command () at dungeon.c:3840
        error_m = "\001\000\000\000�\\\037\b\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000H���ms\016\b�\\\037\b\000\000\000\000\000\000\000\000C\000\000\000\000\000\000\000x�)\b\000\000\000\000��\v\b\001\000\000\000\200�)\001H���\200�)\001"
#15 0x080eef0f in process_player () at dungeon.c:4990
        i = 52
        j = 0
        speed_use = <value optimized out>
#16 0x080ef7f6 in dungeon () at dungeon.c:5442
No locals.
#17 0x080f4d3b in play_game (new_game=1 '\001') at dungeon.c:5934
        i = <value optimized out>
#18 0x081e62a0 in main (argc=1, argv=0xffa60144) at main.c:1063
        i = 0
        new_game = 0 '\0'
        show_score = 0
        mstr = 0x0

BucketMan: There is a new bug reporting forum at bugs.t-o-m-e.net. However, from your description, I would guess that this is not an engine error. You say "When pasting lots of commands in a shop". Can you substitute one succesfully? Two? Three? At what point does it break? Could you post the section of script you changed? That would probably be much more useful than any of the above.

NeilStevens: Please don't tell people to report ToME 2 bugs over there, heh. And to me this trace looks like it's an X11 crash not a ToME crash.

BugReport905 (last edited 2007-07-31 15:23:20 by NeilStevens)