Skip to content

Commit 3c1af3f

Browse files
committed
Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3: Fix GH-16181: phpdbg: exit in exception handler reports fatal error
2 parents 577eb68 + 95c97c8 commit 3c1af3f

File tree

3 files changed

+31
-1
lines changed

3 files changed

+31
-1
lines changed

NEWS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ PHP NEWS
5252
. Fixed bug GH-16009 (Segmentation fault with frameless functions and
5353
undefined CVs). (nielsdos)
5454

55+
- PHPDBG:
56+
. Fixed bug GH-16181 (phpdbg: exit in exception handler reports fatal error).
57+
(cmb)
58+
5559
- Reflection:
5660
. Fixed bug GH-16122 (The return value of ReflectionFunction::getNamespaceName()
5761
and ReflectionFunction::inNamespace() for closures is incorrect). (timwolla)

sapi/phpdbg/phpdbg_prompt.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -904,7 +904,7 @@ PHPDBG_COMMAND(run) /* {{{ */
904904
}
905905
} zend_end_try();
906906

907-
if (EG(exception)) {
907+
if (EG(exception) && !zend_is_unwind_exit(EG(exception))) {
908908
phpdbg_handle_exception();
909909
}
910910
}

sapi/phpdbg/tests/gh16181.phpt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
--TEST--
2+
GH-16181 (phpdbg: exit in exception handler reports fatal error)
3+
--PHPDBG--
4+
r
5+
c
6+
q
7+
--FILE--
8+
<?php
9+
set_exception_handler(function() {
10+
echo "exception caught\n";
11+
die;
12+
});
13+
14+
echo "throwing exception\n";
15+
throw new \Exception("oh noes");
16+
?>
17+
--EXPECTF--
18+
[Successful compilation of %s]
19+
prompt> throwing exception
20+
[Uncaught Exception in %s on line %d: oh noes]
21+
>00008: throw new \Exception("oh noes");
22+
00009: ?>
23+
00010:
24+
prompt> exception caught
25+
[Script ended normally]
26+
prompt>

0 commit comments

Comments
 (0)