/* FIXME: return proper errors */
#define fail(x) \
do { \
- g_printerr ("the fail is strong %s\n", x); \
+ g_printerr ("the fail is "); \
+ perror (x); \
exit (-1); \
} while (0)
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,
tracker_append (tracker, &event, sizeof (event));
-#if 0
- g_print (" Added new map: %d (%s)\n", pid, filename);
-#endif
+ g_print (" Added new map: %d (%s) %llx -- %llx \n", pid, filename, start, end);
}
void
}
const char *
-lookup_user_symbol (process_t *process, gulong address)
+lookup_user_symbol (process_t *process, uint64_t address)
{
static const char *const kernel = "[kernel]";
const BinSymbol *result;
{
if (!process->undefined)
{
+ g_print ("no map for %llx in %d (%s)\n", address, process->pid, process->comm);
+
process->undefined =
g_strdup_printf ("No map (%s)", process->comm);
}
if (!process)
{
- g_warning ("sample for unknown process %d\n", sample->pid);
+ static gboolean warned;
+ if (!warned)
+ {
+ g_warning ("sample for unknown process %d", sample->pid);
+ warned = TRUE;
+ }
return;
}