Rafal Kupiec
c3a4c8de77
Never disable builtin functions.
2018-09-05 20:47:07 +02:00
Rafal Kupiec
00e1c842d5
Never disable builtin functions.
2018-09-05 20:43:39 +02:00
Rafal Kupiec
ea4daa9335
Take last instruction being executed, not necessarily OP_CALL.
2018-09-05 19:45:38 +02:00
Rafal Kupiec
6387026e15
Do not limit the output buffering callbacks.
2018-09-05 18:46:42 +02:00
Rafal Kupiec
11ba0ce738
No need to store output length in VM.
2018-09-05 18:33:53 +02:00
Rafal Kupiec
404f5a2688
No need to store unique ID in VM.
2018-09-05 18:24:34 +02:00
Rafal Kupiec
ae79cb57de
No need to store information about line number in ph7_class struct.
2018-09-05 17:42:10 +02:00
Rafal Kupiec
894dbe47d6
Allow compiler to specify line number, on which instruction has been generated.
...
This also fixes line number on OP_CLASS_INIT and OP_INTERFACE_INIT.
2018-09-05 17:31:06 +02:00
Rafal Kupiec
543176a2f4
Switch VM state to PH7_VM_INCL when including new file.
2018-09-05 13:28:20 +02:00
Rafal Kupiec
d58249cb3f
Use debug trace only if VM is really executing some code.
2018-09-05 13:16:57 +02:00
Rafal Kupiec
765d2cf3eb
Another VM state.
2018-09-05 13:13:36 +02:00
Rafal Kupiec
8ca6deca4e
Allow to set memory limit from SAPI.
2018-09-04 11:52:55 +02:00
Rafal Kupiec
c00c91599f
Enable unused API functions.
2018-09-04 09:33:28 +02:00
Rafal Kupiec
19eaaab081
Remove unused code.
2018-09-04 09:19:15 +02:00
Rafal Kupiec
1643d2ee94
Remove unused code.
2018-09-04 09:18:13 +02:00
Rafal Kupiec
03e452ea7b
Shutdown library properly on error.
2018-09-04 09:13:28 +02:00
Rafal Kupiec
1daf17bcd4
Correct typo.
2018-09-04 09:07:58 +02:00
Rafal Kupiec
d793d3ed70
Rename PH7_VmGenericError() to PH7_VmThrowError()
2018-09-04 08:54:48 +02:00
Rafal Kupiec
758ace0d1a
Shutdown library properly on error.
2018-09-04 08:49:38 +02:00
Rafal Kupiec
dc0a55c8c0
Cleanup old error handler.
2018-09-04 08:38:41 +02:00
Rafal Kupiec
ac73632cb1
Use new error handler.
2018-09-04 08:26:58 +02:00
Rafal Kupiec
bd44dba33c
Use new error handler in modules.
2018-09-03 20:19:12 +02:00
Rafal Kupiec
d85a517eb0
Rework trigger_error() builtin function.
2018-09-03 19:27:38 +02:00
Rafal Kupiec
0a28e492a7
error_reporting() is useless for Aer.
...
Whole configuration should be done in config file.
2018-09-03 19:11:44 +02:00
Rafal Kupiec
fd4206a227
Remove error_log() builtin function and corresponding PH7_VM_CONFIG_ERR_LOG_HANDLER.
...
It was not fully implemented and such feature should be implemented in separate module or on developers own.
2018-09-03 19:03:05 +02:00
Rafal Kupiec
109f4e981a
Aer does not support custom error handlers.
...
Errors are used only internally to emit notifications about compilation/execution problems. They should not be catched and handled by custom handlers, but properly configured (to be displayed or logged). Instead developers should
use exceptions that can be catched with try-catch block.
2018-09-03 16:43:08 +02:00
Rafal Kupiec
dd35b5b8b4
Uncaught exception message.
2018-09-03 16:29:50 +02:00
Rafal Kupiec
d3d3dcc767
Partially switch to new error reporting.
2018-09-03 16:16:32 +02:00
Rafal Kupiec
5895141ae1
Add missing declarations.
2018-09-03 10:59:20 +02:00
Rafal Kupiec
0298299169
Extend SEQ field.
2018-09-03 09:36:22 +02:00
Rafal Kupiec
9c4eb59b49
Variable list of arguments for PH7_VmGenericError();
2018-09-03 09:30:23 +02:00
Rafal Kupiec
f176414bce
Release VM and exit automatically, do not rely on VM.
2018-09-03 08:40:18 +02:00
Rafal Kupiec
eea9eee6e5
Implement PH7_VmGenericError();
2018-09-03 08:19:14 +02:00
Rafal Kupiec
a2acf64272
VmExtractDebugTrace() provides information about a kind of call.
...
Both VmExtractDebugTrace() and VmDebugTrace structure should provide information whether it was object call or a static method call.
2018-09-02 20:15:17 +02:00
Rafal Kupiec
d135748bcd
Always iterate through all frames.
2018-09-02 18:53:23 +02:00
Rafal Kupiec
ea7955b6ee
Remove useless VmExtractPeekDebugTrace();
2018-09-02 18:50:00 +02:00
Rafal Kupiec
f89af70ab2
Fix VmExtractDebugTrace();
...
If there is no information about class in the frame (when closure was called), pClassName should point always to NULL.
2018-09-02 18:46:30 +02:00
Rafal Kupiec
3e1d91e909
Add more comments.
2018-09-02 18:45:01 +02:00
Rafal Kupiec
da198fcb44
Implement PH7_VmMemoryError();
2018-09-02 12:27:32 +02:00
Rafal Kupiec
90ab131ce8
Do not append spaces. Instructions names are properly displayed without them.
2018-09-01 20:28:16 +02:00
Rafal Kupiec
8bfaa83b04
Correct typo.
2018-09-01 20:19:10 +02:00
Rafal Kupiec
4dae0bcc9e
Always record last instruction.
2018-09-01 19:56:36 +02:00
Rafal Kupiec
383fe01943
Reserve 10KB for error reporting.
2018-09-01 17:54:45 +02:00
Rafal Kupiec
8fcb3c608a
Remove duplicate of SySetUsed() macro.
2018-08-31 23:45:46 +02:00
Rafal Kupiec
d9db6bbc26
There is no need for global working buffer in VM.
2018-08-31 23:34:35 +02:00
Rafal Kupiec
67ce98d924
Look for executed OP_CALL.
...
Each function contains a list of all instructions inside, thus we should consider only OP_CALL that has already been executed. As the list is browsed from bottom to top, no more checks are necessary. The first match is what we
are looking for.
2018-08-31 08:30:59 +02:00
Rafal Kupiec
838842fa02
Add execution marker to each instruction.
2018-08-31 08:25:48 +02:00
Rafal Kupiec
3e2a5b3be2
Correct field length.
2018-08-30 19:23:06 +02:00
Rafal Kupiec
90a02d8fdd
Add operator ID to the debugging information.
2018-08-30 16:52:09 +02:00
Rafal Kupiec
461ee00034
Allow to use PH7_CTX_DEPRECATED.
2018-08-30 13:47:01 +02:00