From e47371e94030e244f7054836ffb392ab6d18f74d Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Thu, 27 Jul 2023 15:59:23 -0700 Subject: [PATCH] greeter: add plumbing for gjs trace fd --- src/sysprof/sysprof-greeter.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/sysprof/sysprof-greeter.c b/src/sysprof/sysprof-greeter.c index c2fbb20e..cbe8332f 100644 --- a/src/sysprof/sysprof-greeter.c +++ b/src/sysprof/sysprof-greeter.c @@ -43,6 +43,7 @@ struct _SysprofGreeter GtkWidget *open_page; GtkWidget *recent_page; GtkSwitch *sample_native_stacks; + GtkSwitch *sample_javascript_stacks; GtkSwitch *record_disk_usage; GtkSwitch *record_network_usage; GtkSwitch *record_compositor; @@ -78,14 +79,25 @@ static SysprofProfiler * sysprof_greeter_create_profiler (SysprofGreeter *self) { g_autoptr(SysprofProfiler) profiler = NULL; + g_autoptr(SysprofSpawnable) spawnable = NULL; g_assert (SYSPROF_IS_GREETER (self)); profiler = sysprof_profiler_new (); + /* TODO: Setup spawnable */ + if (gtk_switch_get_active (self->sample_native_stacks)) sysprof_profiler_add_instrument (profiler, sysprof_sampler_new ()); + if (gtk_switch_get_active (self->sample_javascript_stacks)) + { + if (spawnable != NULL) + sysprof_profiler_add_instrument (profiler, + sysprof_tracefd_consumer_new (sysprof_spawnable_add_trace_fd (spawnable, + "GJS_TRACE_FD"))); + } + if (gtk_switch_get_active (self->record_disk_usage)) sysprof_profiler_add_instrument (profiler, sysprof_disk_usage_new ()); @@ -401,6 +413,7 @@ sysprof_greeter_class_init (SysprofGreeterClass *klass) gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, record_system_bus); gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, record_system_logs); gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, sample_native_stacks); + gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, sample_javascript_stacks); gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, toolbar); gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, view_stack);