[sysprof] Simpler message formatting
- From: Søren Sandmann Pedersen <ssp src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [sysprof] Simpler message formatting
- Date: Mon, 14 Sep 2009 09:08:22 +0000 (UTC)
commit 43e419f7749d9b1263553b1ffbc0ed8e05440ed8
Author: Søren Sandmann Pedersen <ssp redhat com>
Date: Mon Sep 7 22:20:13 2009 -0400
Simpler message formatting
collector.c | 10 ++--------
tracker.c | 58 +++++++++++++++++++++++++++-------------------------------
2 files changed, 29 insertions(+), 39 deletions(-)
---
diff --git a/collector.c b/collector.c
index 230e406..e7ba682 100644
--- a/collector.c
+++ b/collector.c
@@ -405,8 +405,6 @@ collector_new (CollectorFunc callback,
static void
process_mmap (Collector *collector, mmap_event_t *mmap)
{
- g_print ("%d %d => %s at %llx\n", mmap->pid, mmap->tid, mmap->filename, mmap->addr);
-
tracker_add_map (collector->tracker,
mmap->pid,
mmap->addr,
@@ -482,8 +480,8 @@ process_event (Collector *collector,
break;
default:
- g_print ("unknown event: %d (%d)\n",
- event->header.type, event->header.size);
+ g_warning ("Got unknown event: %d (%d)\n",
+ event->header.type, event->header.size);
break;
}
}
@@ -496,8 +494,6 @@ collector_start (Collector *collector,
GList *list;
int i;
- g_print ("starting\n");
-
if (!collector->stash)
collector->stash = stack_stash_new (NULL);
if (!collector->tracker)
@@ -519,8 +515,6 @@ collector_start (Collector *collector,
for (list = collector->counters; list != NULL; list = list->next)
counter_enable (list->data);
-
- g_print ("started\n");
return TRUE;
}
diff --git a/tracker.c b/tracker.c
index 6271b3e..3ced06d 100644
--- a/tracker.c
+++ b/tracker.c
@@ -2,6 +2,7 @@
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
+#include <glib/gprintf.h>
#include "tracker.h"
#include "stackstash.h"
@@ -88,7 +89,8 @@ fake_new_process (tracker_t *tracker, pid_t pid)
{
if (strncmp ("Name:", lines[i], 5) == 0)
{
- tracker_add_process (tracker, pid, g_strstrip (strchr (lines[i], ':')));
+ tracker_add_process (
+ tracker, pid, g_strstrip (strchr (lines[i], ':') + 1));
break;
}
}
@@ -190,6 +192,7 @@ tracker_t *
tracker_new (void)
{
tracker_t *tracker = g_new0 (tracker_t, 1);
+ GTimeVal before, after;
tracker->n_event_bytes = 0;
tracker->n_allocated_bytes = DEFAULT_SIZE;
@@ -197,8 +200,6 @@ tracker_new (void)
tracker->stash = stack_stash_new (NULL);
- GTimeVal before, after;
-
g_get_current_time (&before);
populate_from_proc (tracker);
@@ -286,8 +287,6 @@ tracker_add_map (tracker_t * tracker,
event.inode = inode;
tracker_append (tracker, &event, sizeof (event));
-
- g_print (" Added new map: %d (%s) %llx -- %llx \n", pid, filename, start, end);
}
void
@@ -583,8 +582,10 @@ get_kernel_symbols (void)
}
if (!kernel_syms)
+ {
g_print ("Warning: /proc/kallsyms could not be "
"read. Kernel symbols will not be available\n");
+ }
initialized = TRUE;
}
@@ -642,15 +643,26 @@ process_locate_map (process_t *process, gulong addr)
}
static const char *
-make_message (state_t *state, const char *message)
+make_message (state_t *state, const char *format, ...)
{
- char *result = g_hash_table_lookup (state->unique_comms, message);
+ va_list args;
+ char *message;
+ char *result;
- if (!result)
- {
- result = g_strdup (message);
+ va_start (args, format);
+ g_vasprintf (&message, format, args);
+ va_end (args);
- g_hash_table_insert (state->unique_comms, (char *)result, (char *)result);
+ result = g_hash_table_lookup (state->unique_comms, message);
+ if (result)
+ {
+ g_free (message);
+ }
+ else
+ {
+ result = message;
+
+ g_hash_table_insert (state->unique_comms, result, result);
}
return result;
@@ -676,11 +688,7 @@ lookup_symbol (state_t *state,
if (!map)
{
- char *message = g_strdup_printf ("No map [%s]", process->comm);
-
- sym = make_message (state, message);
-
- g_free (message);
+ sym = make_message (state, "No map [%s]", process->comm);
}
else
{
@@ -697,11 +705,7 @@ lookup_symbol (state_t *state,
/* If the inodes don't match, it's probably because the
* file has changed since the process was started.
*/
- char *message = g_strdup_printf ("inode mismatch for %s", map->filename);
-
- sym = make_message (state, message);
-
- g_free (message);
+ sym = make_message (state, "%s: inode mismatch", map->filename);
}
else
{
@@ -757,10 +761,10 @@ static void
process_sample (state_t *state, StackStash *resolved, sample_t *sample)
{
const context_info_t *context = NULL;
+ const char *cmdline;
uint64_t *resolved_traces;
process_t *process;
StackNode *n;
- char *cmdline;
int len;
process = g_hash_table_lookup (
@@ -811,15 +815,7 @@ process_sample (state_t *state, StackStash *resolved, sample_t *sample)
resolved_traces[len++] = POINTER_TO_U64 (symbol);
}
- cmdline = g_hash_table_lookup (
- state->unique_comms, process->comm);
-
- if (!cmdline)
- {
- cmdline = g_strdup (process->comm);
-
- g_hash_table_insert (state->unique_comms, cmdline, cmdline);
- }
+ cmdline = make_message (state, "[%s]", process->comm);
resolved_traces[len++] = POINTER_TO_U64 (cmdline);
resolved_traces[len++] = POINTER_TO_U64 (
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]