@@ -67,7 +67,7 @@ public static function createFromThrowable(\Throwable $exception, int $statusCod
6767$ e ->setStatusCode ($ statusCode );
6868$ e ->setHeaders ($ headers );
6969$ e ->setTraceFromThrowable ($ exception );
70- $ e ->setClass ($ exceptioninstanceof FatalThrowableError ?$ exception ->getOriginalClassName () :\get_class ($ exception ));
70+ $ e ->setClass ($ exceptioninstanceof FatalThrowableError ?$ exception ->getOriginalClassName () :get_debug_type ($ exception ));
7171$ e ->setFile ($ exception ->getFile ());
7272$ e ->setLine ($ exception ->getLine ());
7373
@@ -134,7 +134,11 @@ public function getClass()
134134 */
135135public function setClass ($ class )
136136 {
137- $ this ->class ='c ' ===$ class [0 ] &&0 ===strpos ($ class ,"class@anonymous \0" ) ?get_parent_class ($ class ).'@anonymous ' :$ class ;
137+ if (preg_match ('/^([ \\\\\w]+)@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)[0-9a-fA-F]++/ ' ,$ class ,$ matches )) {
138+ $ this ->class = ('class ' ===$ matches [1 ] ?get_parent_class ($ matches [0 ]) :$ matches [1 ]).'@anonymous ' ;
139+ }else {
140+ $ this ->class =$ class ;
141+ }
138142
139143return $ this ;
140144 }
@@ -179,9 +183,13 @@ public function getMessage()
179183 */
180184public function setMessage ($ message )
181185 {
182- if (false !==strpos ($ message ,"class@anonymous \0" )) {
183- $ message =preg_replace_callback ('/class@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)[0-9a-fA-F]++/ ' ,function ($ m ) {
184- return class_exists ($ m [0 ],false ) ?get_parent_class ($ m [0 ]).'@anonymous ' :$ m [0 ];
186+ if (str_contains ($ message ,"@anonymous \0" )) {
187+ $ message =preg_replace_callback ('/([a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*)@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)[0-9a-fA-F]++/ ' ,static function ($ m ) {
188+ if ('class ' ===$ m [1 ]) {
189+ return class_exists ($ m [0 ],false ) ? (get_parent_class ($ m [0 ]) ?:'class ' ).'@anonymous ' :$ m [0 ];
190+ }
191+
192+ return $ m [1 ].'@anonymous ' ;
185193 },$ message );
186194 }
187195