From 4b70a0b1dc5cee75672e5ce367070f981946b054 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Fri, 5 Nov 2021 10:43:09 +0100
Subject: [PATCH] Pike.BacktraceFrame: Add field total_time --with-profiling.

---
 src/builtin.cmod | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/builtin.cmod b/src/builtin.cmod
index d1e37495ed..ed22a1844a 100644
--- a/src/builtin.cmod
+++ b/src/builtin.cmod
@@ -2555,6 +2555,13 @@ PIKECLASS backtrace_frame
   CVAR struct pike_string *filename;
   CVAR INT_TYPE lineno;
 
+#ifdef PROFILING
+  PIKEVAR bignum total_time;
+  /* FIXME: self_time */
+#endif
+
+  DECLARE_STORAGE;
+
   INIT
   {
     THIS->pc = NULL;
@@ -2932,6 +2939,12 @@ void low_backtrace(struct Pike_interpreter_struct *i)
 
     bf = OBJ2_BACKTRACE_FRAME(o);
 
+#ifdef PROFILING
+    push_int64(get_cpu_time() - (i->unlocked_time + f->start_time));
+    bf->total_time = Pike_sp[-1];
+    Pike_sp--;
+#endif
+
     if ((bf->prog = f->context->prog)) {
       add_ref(bf->prog);
       bf->pc = f->pc;
-- 
GitLab