Difference between revisions of "LSL Errors"

From Second Life Wiki
Jump to navigation Jump to search
(add "Lists may not contain lists" script run-time error)
(add Math Error with example of float nonzero divided by zero)
Line 4: Line 4:


* '''Lists may not contain lists'''
* '''Lists may not contain lists'''
* '''Math Error''' - float divided by zero, integer divided by zero, etc.


* '''Stack-Heap Collision''' - The Stack has collided with the Heap.<br/>The LSL memory space contains three sections Bytecode, Stack and Heap which all must be contained in 16kib of memory.
* '''Stack-Heap Collision''' - The Stack has collided with the Heap.<br/>The LSL memory space contains three sections Bytecode, Stack and Heap which all must be contained in 16kib of memory.
Line 15: Line 17:
     state_entry()
     state_entry()
     {
     {
         list entries = [];
         list once = [];
         entries += [entries]; // Script run-time error: Lists may not contain lists
         list twice = [once, once]; // Script run-time error: Lists may not contain lists
     }
     }
}
}
</pre>
</pre>
</pre>
default
{
    state_entry()
    {
        float one = 1.0;
        float zero = 0.0;
        float quotient = one / zero; // Script run-time error: Math Error
        llOwnerSay((string) quotient);
    }
}
<pre>

Revision as of 21:24, 5 September 2007

Script run-time error messages

  • Lists may not contain lists
  • Math Error - float divided by zero, integer divided by zero, etc.
  • Stack-Heap Collision - The Stack has collided with the Heap.
    The LSL memory space contains three sections Bytecode, Stack and Heap which all must be contained in 16kib of memory.
    • This can occur if the running script is too big. The script compiles and saves successfully, but when an object containing it is instantiated the script crashes.

Examples

default
{
    state_entry()
    {
        list once = [];
        list twice = [once, once]; // Script run-time error: Lists may not contain lists
    }
}

default {

   state_entry()
   {
       float one = 1.0;
       float zero = 0.0;
       float quotient = one / zero; // Script run-time error: Math Error
       llOwnerSay((string) quotient);
   }

}