[EMAIL PROTECTED] wrote:

Module Name:    crossfire
Committed By:   cavesomething
Date:           Mon Oct  3 03:29:41 UTC 2005

Modified Files:
        crossfire: ChangeLog
        crossfire/common: item.c loader.l map.c
        crossfire/doc/Developers: map-technical
        crossfire/include: define.h libproto.h map.h sproto.h
        crossfire/server: apply.c c_object.c shop.c skill_util.c
Added Files:
        crossfire/doc/Developers: shops

Log Message:
add support for specialised shops
Mikee and I both discovered a segfault caused here:

Saving map /scorn/shops/bowshop

Program received signal SIGSEGV, Segmentation fault.
print_shop_string (m=0xafffee20, output_string=0xafffee20 "") at map.c:710
710         for (i=0; i>items[0].index; i++) {
(gdb) bt
#0 print_shop_string (m=0xafffee20, output_string=0xafffee20 "") at map.c:710
#1  0x080d29d9 in new_save_map (m=0x888d1d8, flag=0) at map.c:1194
#2  0x080aab16 in swap_map (map=0x888d1d8) at swap.c:166
#3  0x080aabf2 in check_active_maps () at swap.c:194
#4  0x08085429 in main (argc=13, argv=0xafffee20) at main.c:1247
(gdb) print i
$13 = 0
(gdb) print items[i]
Cannot access memory at address 0x0
(gdb) print items
$15 = (shopitems *) 0x0
(gdb) print m->shopitems
$14 = (shopitems *) 0x2e3a72
(gdb) print *m->shopitems
Cannot access memory at address 0x2e3a72

Looking at this, the issue is "items" being a null pointer. Also, from what I've found, it's something perticular about the bowshop that's causing it. Also, if this helps:

(gdb) up
#1  0x080d29d9 in new_save_map (m=0x888d1d8, flag=0) at map.c:1194
1194            print_shop_string(m, shop);
(gdb) print m
$19 = (mapstruct *) 0x888d1d8
(gdb) print shop
$20 = "\000\000\000\000\000\000\000\004\000\000\000\000\210S\035\b(\uffff\uffff\b\000\000\000\000\004\000\000\000\uffff7\uffff\bK\001\000\000\000\000\000\000\210\uffff\uffff\uffff\uffffU\v\b\uffff\205\uffff\b", '\0' <repeats 19 times>, "\004\000\000\000\000\210S\035\b(\uffff\uffff\b\000\000\000\000\004\000\000\000\000{\uffff\bJ\001\000\000\000\000\000\000\uffff\uffff\uffff\uffff\uffffU\v\b\uffff7\uffff\b", '\0' <repeats 19 times>, "\004\000\000\000\000\210S\035\b(\uffff\uffff\b\000\000\000\000\004\000\000\000\220u\uffff\bI\001\000\000\000\000\000\000\b\uffff\uffff\uffff\uffffU\v\b\000{\uffff\b", '\0' <repeats 19 times>, "\004\000\000\000\000\210S\035\b(\uffff\uffff\b\000\000\000\000\004\000\000\000(\uffff\uffff\bH\001\000"...


   Alex Schultz

_______________________________________________
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire

Reply via email to