mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2026-02-10 23:20:54 +00:00
sysprof-recording-template: add debugdirs property for external debug directories
Signed-off-by: varun-r-mallya <varunrmallya@gmail.com>
This commit is contained in:
@ -35,6 +35,7 @@ struct _SysprofRecordingTemplate
|
|||||||
char *cwd;
|
char *cwd;
|
||||||
char *power_profile;
|
char *power_profile;
|
||||||
char **environ;
|
char **environ;
|
||||||
|
char **debugdirs;
|
||||||
|
|
||||||
guint stack_size;
|
guint stack_size;
|
||||||
|
|
||||||
@ -65,6 +66,7 @@ enum {
|
|||||||
PROP_BATTERY_CHARGE,
|
PROP_BATTERY_CHARGE,
|
||||||
PROP_BUNDLE_SYMBOLS,
|
PROP_BUNDLE_SYMBOLS,
|
||||||
PROP_DEBUGINFOD,
|
PROP_DEBUGINFOD,
|
||||||
|
PROP_DEBUGDIRS,
|
||||||
PROP_CLEAR_ENVIRON,
|
PROP_CLEAR_ENVIRON,
|
||||||
PROP_COMMAND_LINE,
|
PROP_COMMAND_LINE,
|
||||||
PROP_CPU_USAGE,
|
PROP_CPU_USAGE,
|
||||||
@ -103,6 +105,7 @@ sysprof_recording_template_finalize (GObject *object)
|
|||||||
g_clear_pointer (&self->cwd, g_free);
|
g_clear_pointer (&self->cwd, g_free);
|
||||||
g_clear_pointer (&self->power_profile, g_free);
|
g_clear_pointer (&self->power_profile, g_free);
|
||||||
g_clear_pointer (&self->environ, g_free);
|
g_clear_pointer (&self->environ, g_free);
|
||||||
|
g_clear_pointer (&self->debugdirs, g_free);
|
||||||
|
|
||||||
G_OBJECT_CLASS (sysprof_recording_template_parent_class)->finalize (object);
|
G_OBJECT_CLASS (sysprof_recording_template_parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
@ -156,6 +159,10 @@ sysprof_recording_template_get_property (GObject *object,
|
|||||||
case PROP_ENVIRON:
|
case PROP_ENVIRON:
|
||||||
g_value_set_boxed (value, self->environ);
|
g_value_set_boxed (value, self->environ);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PROP_DEBUGDIRS:
|
||||||
|
g_value_set_boxed (value, self->debugdirs);
|
||||||
|
break;
|
||||||
|
|
||||||
case PROP_FRAME_TIMINGS:
|
case PROP_FRAME_TIMINGS:
|
||||||
g_value_set_boolean (value, self->frame_timings);
|
g_value_set_boolean (value, self->frame_timings);
|
||||||
@ -272,6 +279,11 @@ sysprof_recording_template_set_property (GObject *object,
|
|||||||
g_clear_pointer (&self->environ, g_strfreev);
|
g_clear_pointer (&self->environ, g_strfreev);
|
||||||
self->environ = g_value_dup_boxed (value);
|
self->environ = g_value_dup_boxed (value);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PROP_DEBUGDIRS:
|
||||||
|
g_clear_pointer (&self->debugdirs, g_strfreev);
|
||||||
|
self->environ = g_value_dup_boxed (value);
|
||||||
|
break;
|
||||||
|
|
||||||
case PROP_FRAME_TIMINGS:
|
case PROP_FRAME_TIMINGS:
|
||||||
self->frame_timings = g_value_get_boolean (value);
|
self->frame_timings = g_value_get_boolean (value);
|
||||||
@ -396,6 +408,11 @@ sysprof_recording_template_class_init (SysprofRecordingTemplateClass *klass)
|
|||||||
g_param_spec_boxed ("environ", NULL, NULL,
|
g_param_spec_boxed ("environ", NULL, NULL,
|
||||||
G_TYPE_STRV,
|
G_TYPE_STRV,
|
||||||
(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
||||||
|
|
||||||
|
properties[PROP_DEBUGDIRS] =
|
||||||
|
g_param_spec_boxed ("debugdirs", NULL, NULL,
|
||||||
|
G_TYPE_STRV,
|
||||||
|
(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
||||||
|
|
||||||
properties[PROP_FRAME_TIMINGS] =
|
properties[PROP_FRAME_TIMINGS] =
|
||||||
g_param_spec_boolean ("frame-timings", NULL, NULL,
|
g_param_spec_boolean ("frame-timings", NULL, NULL,
|
||||||
@ -783,9 +800,11 @@ sysprof_recording_template_create_loader (SysprofRecordingTemplate *self,
|
|||||||
multi = sysprof_multi_symbolizer_new ();
|
multi = sysprof_multi_symbolizer_new ();
|
||||||
|
|
||||||
elf = SYSPROF_ELF_SYMBOLIZER (sysprof_elf_symbolizer_new ());
|
elf = SYSPROF_ELF_SYMBOLIZER (sysprof_elf_symbolizer_new ());
|
||||||
/* TODO: add extra-debug-directories property and use that to
|
|
||||||
* call sysprof_elf_symbolizer_set_external_debug_dirs(elf,...)
|
if (self->debugdirs)
|
||||||
*/
|
{
|
||||||
|
sysprof_elf_symbolizer_set_external_debug_dirs (elf, (const char * const *)self->debugdirs);
|
||||||
|
}
|
||||||
|
|
||||||
/* Add in order of priority */
|
/* Add in order of priority */
|
||||||
sysprof_multi_symbolizer_take (multi, sysprof_bundled_symbolizer_new ());
|
sysprof_multi_symbolizer_take (multi, sysprof_bundled_symbolizer_new ());
|
||||||
|
|||||||
Reference in New Issue
Block a user