Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:46074 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 18371 invoked from network); 17 Nov 2009 18:34:11 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 17 Nov 2009 18:34:11 -0000 Authentication-Results: pb1.pair.com smtp.mail=mikko.koppanen@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=mikko.koppanen@gmail.com; sender-id=pass; domainkeys=bad Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.220.227 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: mikko.koppanen@gmail.com X-Host-Fingerprint: 209.85.220.227 mail-fx0-f227.google.com Received: from [209.85.220.227] ([209.85.220.227:53089] helo=mail-fx0-f227.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 9A/83-31924-2ACE20B4 for ; Tue, 17 Nov 2009 13:34:11 -0500 Received: by fxm27 with SMTP id 27so301986fxm.23 for ; Tue, 17 Nov 2009 10:34:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:date :x-google-sender-auth:message-id:subject:from:to:content-type; bh=Foy8IE4hZJ8GE6Epgb7k0dfH7y07108A0DAqHgmimRg=; b=LLtagDIJ4mVogtrD8KoM1roOXbSj7p0Y9P1k+y8yymdjPjRoTq/GhZTEkirUllMvFJ EfNfrwM+JfoxQs/jdh4xPzFv7sZ4PLyw39fLcRWIp+wBpKcg3ixH7LM9vfMsXOk0obk7 y+A9BvW6VeakcR4ljWNSadH6Um78aJBKu8VPQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; b=EODJcGi1leQZEoAhW99TywWkCo2t1uqcqYs89ATlFIpllrxGduVTAkAOE50OrDRmAF 7g0NER2A03rhWwlRcYUayVXOJ6eqwpT+2YuXAv4avWPzohmDD3Tcw48wauIXNclN4y3C ZqBlnGp96oasBtiUWCQ4H7TERNjiNf7RRrYGM= MIME-Version: 1.0 Sender: mikko.koppanen@gmail.com Received: by 10.223.143.12 with SMTP id s12mr1702457fau.30.1258482846990; Tue, 17 Nov 2009 10:34:06 -0800 (PST) Date: Tue, 17 Nov 2009 18:34:06 +0000 X-Google-Sender-Auth: df0728043edf2cfe Message-ID: <8cf711460911171034p2565efd5p20874e4841575315@mail.gmail.com> To: PHP Developers Mailing List Content-Type: text/plain; charset=ISO-8859-1 Subject: Ability to intercept errors even if set_error_handler has been called From: mkoppanen@php.net (Mikko Koppanen) Hello, In monitoring type extensions such as Xdebug, APM etc it is common to override zend_error_cb with a custom callback to intercept errors. This however has a drawback: if user calls set_error_handler the zend_error_cb does not get called at all for errors that can be handled in userspace. There are a few approaches to solving this (namely disabling set_error_handler or overriding set_error_handler) but neither of them really seems like a good solution. I made a simple patch that adds always_invoke_error_cb which allows invoking the zend_error_cb in these cases (it needs to be set on explicitly in an extension). error_handled_by_user setting allows extensions to stop propagating the event if it's handled by user's handler. The patch is very simple and probably breaks horribly with some edge cases. Ideas? Feedback? http://pastie.org/702900 -- Mikko Koppanen