Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:90908 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 588 invoked from network); 25 Jan 2016 08:49:55 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 25 Jan 2016 08:49:55 -0000 Authentication-Results: pb1.pair.com smtp.mail=pierre.php@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=pierre.php@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.214.171 as permitted sender) X-PHP-List-Original-Sender: pierre.php@gmail.com X-Host-Fingerprint: 209.85.214.171 mail-ob0-f171.google.com Received: from [209.85.214.171] ([209.85.214.171:35012] helo=mail-ob0-f171.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id D8/91-26079-1B1E5A65 for ; Mon, 25 Jan 2016 03:49:54 -0500 Received: by mail-ob0-f171.google.com with SMTP id zv1so9274903obb.2 for ; Mon, 25 Jan 2016 00:49:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=wmwuzewOagzelhR2jEod4KgyKMImjp4pSssUxBosn2c=; b=WLVdJkZCwq6450fNxL9qF+wkamT4noEql8Z7+BrcZAH4C9yghksdOU84oVjO4aYXPZ 1oQzRBmBvDhioXR+9FhP7idYnAuOMvWQf45zSvNyDnb0hExdJaq3pRO4Zfm6loWVr/FY VEahU8waLuOpDRkvoLn9Kp8Z5jOjRfhSqnJuPh8F8K6vLTeOnioNFUwwj1yLUkEh+Jfg RYkuxgkEqRlVagUEmIYbTdhywxaBCFjynUiM4p9VPrgMF8qIsKIaKXDf+ms3TveftWUl HFDYAIKvKCJG7URdeaxjv7vxmDxKYvejKBpxOb8O+/gQR0CqEfx11HkinH2QKWAIqKIP eHzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=wmwuzewOagzelhR2jEod4KgyKMImjp4pSssUxBosn2c=; b=W4/szkmDcnyB//U03eDP3WyjzyM/IbPGYapmD7tBlrVfxH/uKUVQ+M/FTMVp+Clad3 isbf0+3CAJ3c77P7hpTY0qm2rPIxbC5U8iCJFHNEJzo4Y4eAxgMoRPMSIzgXo/OK15Zn yuKRUvOXSQoMrGE5VeHIkm1g9HKBIDJXul3AtZI23htvM3o/DkUtCZMBrUAUldtH5cz+ FmoWCwtZ1PhtYbnHE0ZY8p93MESUXf+YawVUm4R4hVI4OyoQKUWPKzKeGzDWE89U1IJ0 Zy9exGC6/588luijSgRTF2MGnpA3aZCPAWa8pviAp+11ZnXnqzPuLO4Mw1xSkCm1Rm/K RFog== X-Gm-Message-State: AG10YOTId9NsS6zH95EU/NjqhDrZszg0HWaDMxhAw4jbtKiyFJHTSEbjjP9vL+TA3CIGy+cSxrlejqlPuDKgFQ== MIME-Version: 1.0 X-Received: by 10.182.65.164 with SMTP id y4mr12245762obs.53.1453711790462; Mon, 25 Jan 2016 00:49:50 -0800 (PST) Received: by 10.202.95.68 with HTTP; Mon, 25 Jan 2016 00:49:50 -0800 (PST) Date: Mon, 25 Jan 2016 15:49:50 +0700 Message-ID: To: PHP internals Content-Type: text/plain; charset=UTF-8 Subject: alternative valgrind-like support for run-tests along other nice additions From: pierre.php@gmail.com (Pierre Joye) hi, It has been a long due request to have something similar to valgrind on Windows. I use a tool since quite some time for C projects and it becomes so handy that it is now a good choice for testing PHP as well, DrMemory (http://drmemory.org/) It works on many other platforms as well and provide some other tools and options that could be very handy for php as well. It uses their toolset called DynamoRIO (http://www.dynamorio.org/) which is amazingly powerful, brings strace for windows as well as many other niches tools. I made a quick port for run-tests.php -m using drmemory: https://gist.github.com/pierrejoye/e53deffb7e069a67fc3f (master). Draft stage, need cleanup of the log directory. Also willing to provide a PR to their repo to support --logfile valgrind options (will hopefully be discussed here https://github.com/DynamoRIO/drmemory/issues/1853). Be sure to have drmemory (1.9.x) in your path. This is only for Windows but I think it could make sense to provide it for other platforms as well, optionally. It can then allow us to support other features more easily. I am particularly interested to see if we can make some use of the fuzzy testing or use it to test our internals APIs (what we cruelly miss now). I did not test the performance but they claim to be faster than valgrind. If there is any interest I can continue the port and make it available on any supported platforms and create a RFC for it. If not, I will simply apply the windows port so windows devs (extension or core) can finally have something like valgrind. Thoughts, ideas and comments welcome. Cheers, -- Pierre @pierrejoye | http://www.libgd.org