View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000867 | LDMud | Runtime | public | 2018-10-22 20:02 | 2018-10-23 16:28 |
Reporter | zesstra | Assigned To | Gnomi | ||
Priority | normal | Severity | crash | Reproducibility | sometimes |
Status | resolved | Resolution | fixed | ||
Platform | x86_64 | OS | MacOS X | OS Version | 10.9.x |
Summary | 0000867: Crash when applying lambda | ||||
Description | When creating an object with the program given below, the driver usually crashes with an "'illegal' instruction encountered." or a segmentation fault 11. One reported "Bad stack at F_RETRN, 1 values too high" Other possibilities are various errors like "Bad arg 1 to add_action(): got 'invalid', expected 'string/closure'.", "Undefined function: Dangling function call in lambda closure", "Bad arg 1 to x++: got 'number', expected 'lvalue'." The exact error seems to be influenced by the state of the compiler. If it does not crash, various ones can be provoked by compiling different programs before the test program. 2018.10.22 21:35:25 'illegal' instruction encountered. 2018.10.22 21:35:25 Current object was test test test.c line 5 0x10d58c022: 97 256 clear_locals (0: 28) line 5 0x10d58c025: 22 61532 closure (0: 28) line 6 0x10d58c02a: 22 61480 closure (1: 29) line 8 0x10d58c02f: 22 61501 closure (2: 30) line 10 0x10d58c034: 22 59392 closure (3: 31) line 12 0x10d58c039: 156 1 aggregate (4: 32) line 13 0x10d58c03c: 22 61773 closure (4: 32) line 14 0x10d58c041: 16 const1 (5: 33) line 15 0x10d58c042: 156 4 aggregate (6: 34) line 16 0x10d58c045: 18 9 clit (3: 31) line 17 0x10d58c047: 156 3 aggregate (4: 32) line 18 0x10d58c04a: 156 2 aggregate (2: 30) line 19 0x10d58c04d: 125 0 push_local_variable_lvalue (1: 29) 0x10d58c04f: 41 (void)= (2: 30) 0x10d58c050: 10 0 cstring0 (0: 28) line 21 0x10d58c052: 276 55 quote (1: 29) 0x10d58c054: 22 61773 closure (1: 29) 0x10d58c059: 15 const0 (2: 30) 0x10d58c05a: 158 513 m_caggregate (3: 31) 0x10d58c05d: 120 0 push_identifier_lvalue (1: 29) 0x10d58c05f: 41 (void)= (2: 30) 0x10d58c060: 98 save_arg_frame (0: 28) line 23 0x10d58c061: 8 0 identifier (1: 29) 0x10d58c063: 262 41 m_indices (2: 30) 0x10d58c065: 30 0 local (2: 30) 0x10d58c067: 333 18 lambda (3: 31) 0x10d58c069: 8 0 identifier (2: 30) 0x10d58c06b: 15 const0 (3: 31) 0x10d58c06c: 339 24 m_values (4: 32) 0x10d58c06e: 381 apply (3: 31) test <lambda ?> line 0 0x10a20fc52: 18 9 clit (0: 31) line 0 0x10a20fc54: 8 0 identifier (1: 32) 0x10a20fc56: 162 0 lambda_cconstant (2: 33) 0x10a20fc58: 16 const1 (3: 34) 0x10a20fc59: 142 map_index_lvalue (4: 35) 0x10a20fc5a: 40 = (2: 33) 0x10a20fc5b: 10 1 cstring0 (1: 32) 0x10a20fc5e: 0 0 14 0 0 48 0 0 2149 ' ParseLine' in ' obj/tools/MGtool.c' ('obj/tools/MGtool#251') line 1548 2505 ' CallFunc' in ' obj/tools/MGtool.c' ('obj/tools/MGtool#251') line 1616 3402 ' Xload' in 'obj/tools/MGtool.c (/obj/tools/MGtool/toolcmd.c)' ('obj/tools/MGtool#251') line 1035 7586 ' CATCH' in ('obj/tools/MGtool#251') 7616 ' create' in ' test.c' (' test') line 23 7624 <lambda 0x10a20fc52> in ' test.c' (' test') offset 12 2018.10.22 21:35:25 LDMud aborting on fatal error. | ||||
Steps To Reproduce | Start the driver and load a file containing the following program: mapping memory; void create() { mixed code=({ #',, ({ #'=, ({ #'[, ({ #'memory }), #'lambda, 1 }), 9 }) }); memory=([ quote("'@"): #'lambda; 0 ]); apply(lambda(m_indices(memory), code), m_values(memory)); } | ||||
Tags | No tags attached. | ||||
External Data (URL) | |||||
Date Modified | Username | Field | Change |
---|---|---|---|
2018-10-22 20:02 | zesstra | New Issue | |
2018-10-23 16:28 | Gnomi | Source_changeset_attached | => ldmud.git master a91d988e |
2018-10-23 16:28 | Gnomi | Note Added: 0002464 | |
2018-10-23 16:28 | Gnomi | Assigned To | => Gnomi |
2018-10-23 16:28 | Gnomi | Status | new => resolved |
2018-10-23 16:28 | Gnomi | Resolution | open => fixed |