ldmud-3.2.9/doc/
ldmud-3.2.9/doc/efun/
ldmud-3.2.9/mud/
ldmud-3.2.9/mud/heaven7/
ldmud-3.2.9/mud/heaven7/lib/
ldmud-3.2.9/mud/lp-245/
ldmud-3.2.9/mud/lp-245/banish/
ldmud-3.2.9/mud/lp-245/doc/
ldmud-3.2.9/mud/lp-245/doc/examples/
ldmud-3.2.9/mud/lp-245/doc/sefun/
ldmud-3.2.9/mud/lp-245/log/
ldmud-3.2.9/mud/lp-245/obj/Go/
ldmud-3.2.9/mud/lp-245/players/lars/
ldmud-3.2.9/mud/lp-245/room/death/
ldmud-3.2.9/mud/lp-245/room/maze1/
ldmud-3.2.9/mud/lp-245/room/sub/
ldmud-3.2.9/mud/lp-245/secure/
ldmud-3.2.9/mud/morgengrauen/
ldmud-3.2.9/mud/morgengrauen/lib/
ldmud-3.2.9/mud/sticklib/
ldmud-3.2.9/mud/sticklib/src/
ldmud-3.2.9/mudlib/uni-crasher/
ldmud-3.2.9/pkg/
ldmud-3.2.9/pkg/debugger/
ldmud-3.2.9/pkg/diff/
ldmud-3.2.9/pkg/misc/
ldmud-3.2.9/src/autoconf/
ldmud-3.2.9/src/bugs/
ldmud-3.2.9/src/bugs/MudCompress/
ldmud-3.2.9/src/bugs/b-020916-files/
ldmud-3.2.9/src/bugs/doomdark/
ldmud-3.2.9/src/bugs/ferrycode/ferry/
ldmud-3.2.9/src/bugs/ferrycode/obj/
ldmud-3.2.9/src/bugs/psql/
ldmud-3.2.9/src/done/
ldmud-3.2.9/src/done/order_alist/
ldmud-3.2.9/src/done/order_alist/obj/
ldmud-3.2.9/src/done/order_alist/room/
ldmud-3.2.9/src/gcc/
ldmud-3.2.9/src/gcc/2.7.0/
ldmud-3.2.9/src/gcc/2.7.1/
ldmud-3.2.9/src/hosts/
ldmud-3.2.9/src/hosts/GnuWin32/
ldmud-3.2.9/src/hosts/amiga/NetIncl/
ldmud-3.2.9/src/hosts/amiga/NetIncl/netinet/
ldmud-3.2.9/src/hosts/amiga/NetIncl/sys/
ldmud-3.2.9/src/hosts/i386/
ldmud-3.2.9/src/hosts/msdos/byacc/
ldmud-3.2.9/src/hosts/msdos/doc/
ldmud-3.2.9/src/hosts/os2/
ldmud-3.2.9/src/hosts/win32/
ldmud-3.2.9/src/util/
ldmud-3.2.9/src/util/erq/
ldmud-3.2.9/src/util/indent/hosts/next/
ldmud-3.2.9/src/util/xerq/
ldmud-3.2.9/src/util/xerq/lpc/
ldmud-3.2.9/src/util/xerq/lpc/www/
Short: Illegal instruction 
Date: Mon, 18 Mar 2002 18:16:48 +0100 (CET)
From: Unholy Lands Mud <mud@klein.htu.tuwien.ac.at>
Type: Abandoned.
State: New

Oha, ich hab einen netten Crash produziert

Getestet mit 3.2.9dev410 und dev419

Muss zugeben, ich werd nicht schlau daraus ...

Der Crash ist deterministisch, ich kann ihn aber nicht reproduzieren
wenn ich die function do_follow direkt aufrufe ..
Der crash passiert immer dann wenn das monster einem Unsichtbaren
zu folgen versucht, und dadurch auf continue kommt ...

Muss ich dir meine lib zur Verfuegung stellen, oder kannst du mit dem
debug trace etwas anfangen ?

---

2002.03.16 21:35:49 Illegal instruction
2002.03.16 21:35:49 Current object was sys/impl#107
sys/impl#107 sys/living.c line 874
843202f:  13          const0                     (1: 34)        line 874
8432030:  46          <                          (2: 35)
8432031:  83          branch_when_zero           (1: 34)
8432039:   5        8 identifier                 (0: 33)        line 875
843203b:  87          call_function_by_address   (1: 34)
8431f6b:   5       52 identifier                 (0: 34)        line 843
8431f6d:  16        2 clit                       (1: 35)
8431f6f:  87          call_function_by_address   (2: 36)
843217f:   5       45 identifier                 (0: 36)        line 930
8432181:  26        0 local                      (1: 37)
8432183:  99          index                      (2: 38)
8432184:  83          branch_when_zero           (1: 37)
843218e:  22          return0                    (0: 36)        line 933
8431f73:  39          +                          (2: 36)        line 843
8431f74:  16       50 clit                       (1: 35)
8431f76:  46          <                          (2: 36)
8431f77:  83 355602435 branch_when_zero           (1: 35)
8431f7c:   5       52 identifier                 (0: 34)        line 844
8431f7e:  16        2 clit                       (1: 35)
8431f80:  87          call_function_by_address   (2: 36)
843217f:   5       45 identifier                 (0: 36)        line 930
8432181:  26        0 local                      (1: 37)
8432183:  99          index                      (2: 38)
8432184:  83          branch_when_zero           (1: 37)
843218e:  22          return0                    (0: 36)        line 933
8431f84:  39          +                          (2: 36)        line 844
8431f85:  21          return                     (1: 35)
843203f:  44          >                          (2: 35)        line 875
8432040:  83          branch_when_zero           (1: 34)
8432049:   5        8 identifier                 (0: 33)        line 877
843204b:  21          return                     (1: 34)
sys/impl#107 sys/living.c (/sys/lmods/mov_liv.c) line 286
8430b30:  76          pop_value                  (1: 33)        line 286
8430b31:  26        3 local                      (0: 32)        line 287
8430b33:  26        4 local                      (1: 33)
8430b35:  87          call_function_by_address   (2: 34)
sys/impl#107 sys/living.c (/sys/lmods/group.c) line 697
842f79f:  78      514 clear_locals               (0: 36)        line 697
842f7a2:  13          const0                     (0: 36)        line 699
842f7a3: 108        1 aggregate                  (1: 37)
842f7a6:  89      109 push_identifier_lvalue     (1: 37)
842f7a8:  66          -=                         (2: 38)
842f7a9:  76          pop_value                  (1: 37)
842f7aa:  26        0 local                      (0: 36)        line 700
842f7ac:  84     5633 branch_when_non_zero       (1: 37)
842f7af:   5      109 identifier                 (0: 36)        line 701
842f7b1: 213          sizeof                     (1: 37)
842f7b2:  94        3 push_local_variable_lvalue (1: 37)
842f7b4:  38          (void)=                    (2: 38)
842f7b5:  13          const0                     (0: 36)        line 702
842f7b6:  94        2 push_local_variable_lvalue (1: 37)
842f7b8:  38          (void)=                    (2: 38)
842f7b9:  82          branch                     (0: 36)
842f898:  26        2 local                      (0: 36)
842f89a:  26        3 local                      (1: 37)
842f89c:  46          <                          (2: 38)
842f89d:  86          bbranch_when_non_zero      (1: 37)
842f7bb:  26        1 local                      (0: 36)        line 704
842f7bd:   5      109 identifier                 (1: 37)
842f7bf:  26        2 local                      (2: 38)
842f7c1:  99          index                      (3: 39)
842f7c2: 146        1 environment                (2: 38)
842f7c4:  48          ==                         (2: 38)
842f7c5:  83      206 branch_when_zero           (1: 37)
842f7c7: 226          this_object                (0: 36)        line 707
842f7c8:   7      202 cstring0                   (1: 37)
842f7ca:   5      109 identifier                 (2: 38)
842f7cc:  26        2 local                      (3: 39)
842f7ce:  99          index                      (4: 40)
842f7cf: 127          call_other                 (3: 39)
sys/impl#107 sys/impl.c line 228
83d5897:   5      225 identifier                 (0: 40)        line 228
83d5899: 188          pointerp                   (1: 41)
83d589a:  84          branch_when_non_zero       (1: 41)
83d58a2:  26        0 local                      (0: 40)        line 229
83d58a4:  57          !                          (1: 41)
83d58a5:  36       11 ||                         (1: 41)
83d58a7:  26        0 local                      (0: 40)
83d58a9:   7       92 cstring0                   (1: 41)
83d58ab: 127          call_other                 (2: 42)
domains/villages/zones/test_village/monsters/test_guard#119 sys/living.c line 535
84316cb:   5        2 identifier                 (0: 42)        line 535
84316cd:  21          return                     (1: 43)
sys/impl#107 sys/impl.c line 229
83d58ad:   5      225 identifier                 (1: 41)        line 229
83d58af: 177          member_array               (2: 42)
83d58b0:  15          nconst1                    (1: 41)
83d58b1:  49          !=                         (2: 42)
83d58b2:  83     5633 branch_when_zero           (1: 41)
83d58b5:   7       93 cstring0                   (0: 40)        line 230
83d58b7:   7       94 cstring0                   (1: 41)
83d58b9:  26        0 local                      (2: 42)
83d58bb:   7       95 cstring0                   (3: 43)
83d58bd: 127        2 call_other                 (4: 44)
83d58bf: 127        3 call_other                 (3: 43)
83d58c1:   5      225 identifier                 (1: 41)        line 231
83d58c3: 177          member_array               (2: 42)
83d58c4:  15          nconst1                    (1: 41)
83d58c5:  49          !=                         (2: 42)
83d58c6:  83     5633 branch_when_zero           (1: 41)
83d58c9:  26        0 local                      (0: 40)        line 232
83d58cb:  26        1 local                      (1: 41)
83d58cd:  88          call_explicit_inherited    (2: 42)
sys/impl#107 sys/living.c line 419
843140f:  78      514 clear_locals               (0: 44)        line 419
8431412:  26        0 local                      (0: 44)        line 421
8431414: 226          this_object                (1: 45)
8431415:  48          ==                         (2: 46)
8431416:  83     5633 branch_when_zero           (1: 45)
8431419:  26        0 local                      (0: 44)        line 424
843141b:  57          !                          (1: 45)
843141c:  36        8 ||                         (1: 45)
843141e:  26        0 local                      (0: 44)
8431420:   7      139 cstring0                   (1: 45)
8431422:   7        1 cstring0                   (2: 46)
8431424: 127          call_other                 (3: 47)
domains/villages/zones/test_village/monsters/test_guard#119 sys/living.c (/sys/lmods/living_props.c) line 140
8427993:   5       60 identifier                 (0: 47)        line 140
8427995:  26        0 local                      (1: 48)
8427997: 176          member                     (2: 49)
8427998:  21          return                     (1: 48)
sys/impl#107 sys/living.c line 424
8431426:  83          branch_when_zero           (1: 45)        line 424
843142a:  26        1 local                      (0: 44)        line 428
843142c:  15          nconst1                    (1: 45)
843142d:  44          >                          (2: 46)
843142e:  35        8 &&                         (1: 45)
8431430:  26        0 local                      (0: 44)
8431432: 146        1 environment                (1: 45)
8431434: 226          this_object                (1: 45)
8431435: 146        1 environment                (2: 46)
8431437:  48          ==                         (2: 46)
8431438:  35          &&                         (1: 45)
8431440:  83          branch_when_zero           (1: 45)
8431444:   7       42 cstring0                   (0: 44)        line 432
8431446:  87          call_function_by_address   (1: 45)
sys/impl#107 sys/living.c (/sys/lmods/living_props.c) line 140
8427993:   5       60 identifier                 (0: 45)        line 140
8427995:  26        0 local                      (1: 46)
8427997: 176          member                     (2: 47)
8427998:  21          return                     (1: 46)
sys/impl#107 sys/living.c line 432
843144a:  35          &&                         (1: 45)        line 432
843148c:  83          branch_when_zero           (1: 45)        line 434
8431490:  87          call_function_by_address   (0: 44)        line 438
8431663:   5       26 identifier                 (0: 44)        line 521
8431665:  21          return                     (1: 45)
8431494:  36          ||                         (1: 45)        line 438
843149a:  84     5633 branch_when_non_zero       (1: 45)
843149d: 226          this_object                (0: 44)        line 442
843149e:   7       55 cstring0                   (1: 45)
84314a0: 127          call_other                 (2: 46)
sys/impl#107 sys/player.c line 1497
8456e5b:   5        4 identifier                 (0: 46)        line 1497
8456e5d:  16      100 clit                       (1: 47)
8456e5f:  45          >=                         (2: 48)
8456e60:  21          return                     (1: 47)
sys/impl#107 sys/living.c line 442
84314a2:  83       33 branch_when_zero           (1: 45)        line 442
84314a4:  26        0 local                      (0: 44)        line 443
84314a6:   9       59 cstring2                   (1: 45)
84314a8: 127          call_other                 (2: 46)
domains/villages/zones/test_village/monsters/test_guard#119 sys/living.c line 696
8431cb7:   5        4 identifier                 (0: 46)        line 696
8431cb9:  21          return                     (1: 47)
sys/impl#107 sys/living.c line 443
84314aa:  94        2 push_local_variable_lvalue (1: 45)        line 443
84314ac:  38          (void)=                    (2: 46)
84314ad:  26        0 local                      (0: 44)        line 444
84314af:   8      215 cstring1                   (1: 45)
84314b1: 127          call_other                 (2: 46)
domains/villages/zones/test_village/monsters/test_guard#119 sys/living.c line 1165
84326ef:   5       23 identifier                 (0: 46)        line 1165
84326f1:  21          return                     (1: 47)
sys/impl#107 sys/living.c line 444
84314b3:  83        4 branch_when_zero           (1: 45)        line 444
84314b5:  14          const1                     (0: 44)
84314b6:  94        2 push_local_variable_lvalue (1: 45)
84314b8:  38          (void)=                    (2: 46)
84314b9:  26        2 local                      (0: 44)        line 445
84314bb:  87          call_function_by_address   (1: 45)
8431663:   5       26 identifier                 (0: 45)        line 521
8431665:  21          return                     (1: 46)
84314bf:  44          >                          (2: 46)        line 445
84314c0:  94        3 push_local_variable_lvalue (1: 45)
84314c2:  38          (void)=                    (2: 46)
84314c3:  82          branch                     (0: 44)        line 447
8431500:  26        3 local                      (0: 44)        line 460
8431502:  83          branch_when_zero           (1: 45)
8431539:  26        3 local                      (0: 44)        line 471
843153b:  57          !                          (1: 45)
843153c:  21          return                     (1: 45)
sys/impl#107 sys/impl.c line 232
83d58d3:  21          return                     (1: 41)        line 232
sys/impl#107 sys/living.c (/sys/lmods/group.c) line 707
842f7d1:  35       23 &&                         (1: 37)        line 707
842f7d3:   5      109 identifier                 (0: 36)        line 708
842f7d5:  26        2 local                      (1: 37)
842f7d7:  99          index                      (2: 38)
842f7d8:  87          call_function_by_address   (1: 37)
842f26b:   5      110 identifier                 (0: 37)        line 406
842f26d:  84        1 branch_when_non_zero       (1: 38)
842f26f:  22          return0                    (0: 37)
842f7dc:  36       11 ||                         (1: 37)        line 708
842f7de:   5      109 identifier                 (0: 36)
842f7e0:  26        2 local                      (1: 37)
842f7e2:  99          index                      (2: 38)
842f7e3:   7      139 cstring0                   (1: 37)
842f7e5:   7       27 cstring0                   (2: 38)
842f7e7: 127          call_other                 (3: 39)
domains/villages/zones/test_village/monsters/test_guard#119 sys/living.c (/sys/lmods/living_props.c) line 140
8427993:   5       60 identifier                 (0: 39)        line 140
8427995:  26        0 local                      (1: 40)
8427997: 176          member                     (2: 41)
8427998:  21          return                     (1: 40)
sys/impl#107 sys/living.c (/sys/lmods/group.c) line 708
842f7e9:  57          !                          (1: 37)        line 708
842f7ea:  83        3 branch_when_zero           (1: 37)
842f7ec:  79          lbranch                    (0: 36)        line 709
842f7ee:   0   5 116  35   8   5 109  26
'           move' in '      room/genRoom.c' ('domains/villages/zones/test_village/rooms/1501') line 604
'    move_living' in '    room/blockRoom.c' ('domains/villages/zones/test_village/rooms/1501') line 226
'    move_living' in '      room/genRoom.c' ('domains/villages/zones/test_village/rooms/1501') line 496
'    move_living' in 'sys/living.c (/sys/lmods/mov_liv.c)' ('        sys/impl#107') line 287
'      do_follow' in 'sys/living.c (/sys/lmods/group.c)' ('        sys/impl#107') line 7092002.03.16 21:35:49 LDMud aborting on fatal error.
Speicherzugriffsfehler

--

Source :

void do_follow(string cmd, object last_env)
{
    int i,cnt;

    follow_obj -= ({ 0 });
    if (!cmd) return;   // Maybe a move without a cmd, e.g. rent
    cnt = sizeof(follow_obj);
    for(i=0;i<cnt;i++)
    {
        if(last_env == environment(follow_obj[i]))
        {
            // Follow invis only if groupleader or led !!
            if ( TO->is_invis_for(follow_obj[i]) && !
   (query_grouped(follow_obj[i]) || follow_obj[i]->query_property("mount")) )
               continue;  !! LINE 709 !!

            // Get rid
            if(rid_whom && follow_obj[i] == rid_whom &&
               !rid_whom->is_invis_for(TO))
            {
               TOBJ(TO,"You try to shake off #N.\n", rid_whom);
               if(random((int)rid_whom->query_level()*2) < random(level))
               {
                  TOBJ(rid_whom,"#N managed to escape your pursue.\n",TO);
                  rid_whom->stop_follow();
                  rid_whom = 0;
                  continue;
               }
               else
                  TOBJ(follow_obj[i],"#N tried to shake you off, but you "
                              + "managed to follow "+query_objective(0)
                              + ".\n",TO);
            }
            TOBJ( follow_obj[i], "You follow #N.\n", TO );
            command(cmd, follow_obj[i]);

            if(follow_obj[i] && environment(follow_obj[i])==last_env)
               tell_object(follow_obj[i],"You've lost your leader !\n");

            tell_object(follow_obj[i],follow_obj[i]->display_prompt(0));
        }
    }
}