+Wed Jun 4 21:52:17 2008 Søren Sandmann <sandmann@redhat.com>
+
+ * demangle.c: Apply patch from binutils to demangle local-source
+ names. Binutils changelog:
+
+ 2007-05-05 Geoffrey Keating <geoffk@apple.com>
+
+ * cp-demangle.c (d_name): Detect local-source-name.
+ (d_prefix): Likewise.
+ (d_unqualified_name): Implement local-source-name.
+
+ * sysprof.c: Update copyright statement
+
Mon Jun 2 01:35:25 2008 Søren Sandmann <sandmann@redhat.com>
* demangle.c: Remove weird comment.
Before 1.2:
-* For glibc, the debug files do not contain .strtab and .symtab, but
- the original files do. The algorithm in binfile.c must be modified
- accordingly.
+* Hack to disable recursion for binaries without symbols causes the
+ symbols to not work the way other symbols do. A better approach is
+ probably to simply generate a new symbol for every appearance except
+ leaf nodes, which should still be considered one symbol (or maybe be
+ considered the same symbol if they have the same parent). In fact
+ "has same parent" may be the correct criterion in all cases.
+
+* It crashes sometimes.
* Find out what is going on with kernel threads:
* Is the move-to-front in process_locate_map() really worth it?
-* Whenever we fail to lock the atomic variable, track this, and send the information
- to userspace as an indication of the overhead of the profiling. Although there is
- inherent aliasing here since stack scanning happens at regular intervals.
+* Whenever we fail to lock the atomic variable, track this, and send the
+ information to userspace as an indication of the overhead of the profiling.
+ Although there is inherent aliasing here since stack scanning happens at
+ regular intervals.
* Apparently, if you upgrade the kernel, then don't re-run configure,
the kernel Makefile will delete all of /lib/modules/<release>/kernel
-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ALREADY DONE: -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+* Find out why the strings
+
+ _ZL11DisplayLineP20nsDisplayListBuilderRK6nsRectS3_R19nsLineList_iteratoriRiRK16nsDisplayListSetP12nsBlockFrame
+ _ZL11DisplayRowsP20nsDisplayListBuilderP7nsFrameRK6nsRectRK16nsDisplayListSet _ZL11DrawBordersP10gfxContextR7gfxRectS2_PhPdS4_PjPP14nsBorderColorsijiP6nsRect _ZL11HandleEventP10nsGUIEvent
+ _ZL12IsContentLEQP13nsDisplayItemS0_Pv
+ _ZL15expose_event_cbP10_GtkWidgetP15_GdkEventExpose
+
+ do not get demangled.
+
+* For glibc, the debug files do not contain .strtab and .symtab, but
+ the original files do. The algorithm in binfile.c must be modified
+ accordingly.
+
* If we profile something that is not very CPU bound, sysprof itself
seems to get a disproportionate amount of the samples. Should look
into this. Fixed by only returning from poll when there is more
if (IS_DIGIT (peek)
|| IS_LOWER (peek)
|| peek == 'C'
- || peek == 'D')
+ || peek == 'D'
+ || peek == 'L')
dc = d_unqualified_name (di);
else if (peek == 'S')
dc = d_substitution (di, 1);
/* <unqualified-name> ::= <operator-name>
::= <ctor-dtor-name>
::= <source-name>
+ ::= <local-source-name>
+
+ <local-source-anem> ::= L <source-name><discriminator>
*/
static struct demangle_component *
}
else if (peek == 'C' || peek == 'D')
return d_ctor_dtor_name (di);
+ else if (peek == 'L')
+ {
+ struct demangle_component * ret;
+
+ d_advance (di, 1);
+
+ ret = d_source_name (di);
+ if (ret == NULL)
+ return NULL;
+ if (! d_discriminator (di))
+ return NULL;
+ return ret;
+ }
else
return NULL;
}
static gchar *
make_hex_string (const guchar *data, int n_bytes)
{
- GString *string = g_string_new (NULL);
- const char hex_digits[] = {
+ static const char hex_digits[] = {
'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'a', 'b', 'c', 'd', 'e', 'f'
};
+ GString *string = g_string_new (NULL);
int i;
for (i = 0; i < n_bytes; ++i)
/* Sysprof -- Sampling, systemwide CPU profiler
* Copyright 2004, Red Hat, Inc.
- * Copyright 2004, 2005, 2006, 2007, Soeren Sandmann
+ * Copyright 2004, 2005, 2006, 2007, 2008, Soeren Sandmann
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
gtk_show_about_dialog (GTK_WINDOW (app->main_window),
"logo", app->icon,
name_property, APPLICATION_NAME,
- "copyright", "Copyright 2004-2007, S"OSLASH"ren Sandmann",
+ "copyright", "Copyright 2004-2008, S"OSLASH"ren Sandmann",
"version", PACKAGE_VERSION,
NULL);
}