Commit graph

56 commits

Author SHA1 Message Date
Christoph M. Becker
af4a9bf1bf Fix #73927: phpdbg fails with windows error prompt at "watch array"
We expect zvals, so we should request zvals.

We also suppress spurious watchpoint removal notices.
2020-06-02 15:17:40 +02:00
Christoph M. Becker
8483a21f29 Fix several mostly Windows related phpdbg bugs
* Properly initialize PHPDBG_G(watch_tmp)

  Otherwise that may cause segfaults in ZTS builds.

* Deactivate potentially remaining watchpoints after REPL

  Otherwise the memory could still be protected, resulting in segfaults
  during shutdown.

* NULL zend_handlers_table after freeing

  As of commit 4130fe4[1], the `zend_handlers_table` is explicitly
  freed in the `zend_vm_dtor()`.  Since phpdbg (and maybe some other
  SAPIs) may restart the engine afterwards, we have to make sure that
  the table is also NULLed.

* Only set context option if there is a context

  In other words, we must not follow the null pointer.

* Cater to file handles without attached console

  File handles do not necessarily have an attached console (for
  instance, pipes do not), in which case `GetConsoleScreenBufferInfo()`
  fails.  In this case we set a default value (`40`) for lines like on
  other systems.

[1] <http://git.php.net/?p=php-src.git;a=commit;h=4130fe437a5db7ead1444d3748bd0fbad9829cb2>
2020-05-26 17:45:25 +02:00
Nikita Popov
2149ed7072 Don't use zmm for PHPDBG_G(exec)
Uses system allocator when backing up settings ... let's avoid
unnecessary confusion.
2019-06-27 14:20:30 +02:00
Nikita Popov
c09b63595e Fix potentially uninitialized warnings in phpdbg 2019-04-12 11:46:03 +02:00
Zeev Suraski
0cf7de1c70 Remove yearly range from copyright notice 2019-01-30 11:03:12 +02:00
Nikita Popov
7ec8087f80 Introduce get_properties_for() handler
This handler allows getting the object properties for a particular
purpose, such as array casting, serialization, etc.
2018-10-10 10:39:10 +02:00
Dmitry Stogov
92fdf9d629 Change zend_lookup_class_ex() and zend_fetch_class_by_name() prototypes to accept optional lower-case class name as zend_string*, instead of zval*. 2018-08-22 17:07:31 +03:00
Dmitry Stogov
dd932f7e63 Changed php_add[c]slashes prototypes (removed should_free argument) 2018-06-29 00:19:16 +03:00
Dmitry Stogov
ca035f26aa Moved "zval.u2.cache_slot" into free room of "zend_op" 2018-02-05 19:41:47 +03:00
Dmitry Stogov
ba298725d1 Changed CATCH instruction format (extended_value moved into op2, op2 into result, result into extended_value) 2018-01-31 22:39:30 +03:00
Xinchen Hui
a6519d0514 year++ 2018-01-02 12:57:58 +08:00
Dmitry Stogov
ef5ea48741 Always use IS_CONSTANT_AST (IS_CONSTANT is removed). 2017-10-10 10:11:05 +03:00
Dmitry Stogov
cb9d81ef4f Refactored recursion pretection 2017-10-06 01:34:50 +03:00
Dmitry Stogov
e70618aff6 Changed the way VM accesses constant operands in 64-bit builds. 2017-10-04 16:53:01 +03:00
Sammy Kaye Powers
9e29f841ce Update copyright headers to 2017 2017-01-02 09:30:12 -06:00
Bob Weinand
ef657978b2 Merge branch 'PHP-7.0' into PHP-7.1 2016-11-13 13:22:35 +01:00
Bob Weinand
ba75d4c50b Properly escape all filenames when exporting breakpoints 2016-11-13 13:22:06 +01:00
Bob Weinand
601ab6e9d0 Fix searching for catch blocks
Since PHP-7.1 catch blocks are addressed with relative byte difference between two catch blocks as opposed to absolute opcode number
2016-10-16 12:34:10 +02:00
Bob Weinand
b00376884e Rewrite watchpoints to be much more stable
This mainly involves a separate abstraction layer for elements (e.g. $a->b) and watchpoints (on pointer of the Bucket for example).
Also better comparison handling (value backup vs. page dumps).

It is not yet finished (there are sometimes false positives announced and names not yet perfect), but the functionality is working and not crashing as far as I have tested.
Future scope is also relative watchpoints, e.g. "w $this->val expression()" which does not have the symbol tables as basis, but the value (in this example: return value of expression()) as basis.
2016-07-11 23:58:20 +02:00
Nikita Popov
24551ed6c8 Print .0 in phpdbg opcode dumps 2016-03-25 19:11:32 +01:00
James Titcumb
c4b188871e Fix bug #71575 removing extra semicolons outside macros 2016-03-03 16:41:03 +01:00
Nikita Popov
c9357f82d3 Format string fixes
Conflicts:
	ext/pgsql/pgsql.c
2016-02-14 14:45:53 +01:00
Lior Kaplan
ed35de784f Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Happy new year (Update copyright to 2016)
2016-01-01 19:48:25 +02:00
Lior Kaplan
49493a2dcf Happy new year (Update copyright to 2016) 2016-01-01 19:21:47 +02:00
Felipe Pena
f231ddddaf - Implemented output paging 2015-10-18 12:08:04 -02:00
Bob Weinand
0c60524190 Fixed bug #70214 (FASYNC possibly not defined) 2015-08-08 15:53:27 +02:00
Bob Weinand
64f25adb6b Remove -Wunused-result warnings 2015-07-27 15:02:01 +02:00
Bob Weinand
13525328ed Cleanup shutdown, enable proper memory leak displaying
phpdbg should not memory leak...
2015-07-24 17:17:26 +02:00
Bob Weinand
75a3de0cd8 Fix misbehaviors with uncaught exceptions and finally or eval 2015-07-20 18:00:43 +02:00
Nikita Popov
20e5027293 Switch asprintf to spprintf in phpdbg opcode dump
Also use %td where appropriate, a lot of the values are ptrdiff
based.

Fix a leak in phpdbg_frame.c.
2015-07-17 16:53:07 +02:00
Dmitry Stogov
7aa7627172 Use ZSTR_ API to access zend_string elements (this is just renaming without semantick changes). 2015-06-30 13:59:27 +03:00
Bob Weinand
088f589f7d Make backtraces *much* more readable 2015-06-29 02:51:10 +02:00
Bob Weinand
5bec1490f9 Fix phpdbg class fetch / method opcodes 2015-05-27 00:55:26 +02:00
Bob Weinand
e09a0bfc9e Also consider specific catches when checking for uncaught 2015-04-22 01:08:08 +02:00
Bob Weinand
73d31d44e8 Break on uncaught exceptions in current frame in phpdbg 2015-04-22 01:08:07 +02:00
Bob Weinand
f83ee6a05d Add next command / Fix recursion/exceptions with u/F/L 2015-04-21 12:31:57 +02:00
Bob Weinand
740c86bcbd Stabilize watchpoints 2015-04-19 12:53:29 +02:00
Bob Weinand
97887e3716 Stabilize (simple) watchpoints with IS_INDIRECT/IS_REFERENCE situations 2015-03-21 23:16:53 +01:00
Lior Kaplan
a4384bd3d4 s/PHP Version 5/PHP Version 7/g
Follow up for d0cb7153
2015-03-13 11:09:42 +02:00
Xinchen Hui
da7d94cd73 Merge branch 'PHP-5.6'
Conflicts:
	ext/soap/soap.c
	ext/standard/basic_functions.c
	ext/zlib/zlib.c
2015-02-13 13:28:24 +08:00
Xinchen Hui
fc33f52d8c bump year 2015-01-15 23:27:30 +08:00
Xinchen Hui
0579e8278d bump year 2015-01-15 23:26:37 +08:00
Anatol Belski
bdeb220f48 first shot remove TSRMLS_* things 2014-12-13 23:06:14 +01:00
Ferenc Kovacs
0afc04b913 go back with phpdbg to the state of 5.6.3, reverting the controversial commits(remote debugging/xml protocol) 2014-11-26 18:38:36 +01:00
Bob Weinand
2bcac53bca Made phpdbg compatible with new engine 2014-10-24 19:29:50 +02:00
Bob Weinand
9b4d9ac6c7 Merge phpdbg into PHP-5.6 2014-10-24 19:22:45 +02:00
Johannes Schlüter
d0cb715373 s/PHP 5/PHP 7/ 2014-09-19 18:33:14 +02:00
Remi Collet
0da5d94a6c Better fix for phpdbg + libedit
- fix include
- disable coloured prompt only with libedit
2014-06-23 10:21:19 +02:00
Remi Collet
0febafcfbe Fix https://github.com/krakjoe/phpdbg/issues/91
Enable edit feature when build with libedit.

Notice: coloured prompt only enable with READLINE
2014-06-23 10:21:19 +02:00
Remi Collet
98d41dfc9d Better fix for phpdbg + libedit
- fix include
- disable coloured prompt only with libedit
2014-06-23 10:17:43 +02:00