Page MenuHomePhabricator

D19220.diff
No OneTemporary

D19220.diff

diff --git a/src/serviceprofiler/PhutilServiceProfiler.php b/src/serviceprofiler/PhutilServiceProfiler.php
--- a/src/serviceprofiler/PhutilServiceProfiler.php
+++ b/src/serviceprofiler/PhutilServiceProfiler.php
@@ -10,7 +10,9 @@
private $listeners = array();
private $events = array();
private $logSize = 0;
+
private $discardMode = false;
+ private $collectStackTraces;
private function __construct() {}
@@ -18,6 +20,15 @@
$this->discardMode = true;
}
+ public function setCollectStackTraces($collect_stack_traces) {
+ $this->collectStackTraces = $collect_stack_traces;
+ return $this;
+ }
+
+ public function getCollectStackTraces() {
+ return $this->collectStackTraces;
+ }
+
public static function getInstance() {
if (empty(self::$instance)) {
self::$instance = new PhutilServiceProfiler();
@@ -27,6 +38,13 @@
public function beginServiceCall(array $data) {
$data['begin'] = microtime(true);
+
+ if ($this->collectStackTraces) {
+ $trace = debug_backtrace();
+ $trace = PhutilErrorHandler::formatStacktrace($trace);
+ $data['trace'] = $trace;
+ }
+
$id = $this->logSize++;
$this->events[$id] = $data;
foreach ($this->listeners as $listener) {

File Metadata

Mime Type
text/plain
Expires
Nov 8 2025, 4:35 AM (22 w, 6 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
8958540
Default Alt Text
D19220.diff (1 KB)

Event Timeline