This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

UProbes fails


Hello,

I'm not sure if this is the right mailing list for this question. I
get the following errors when using systemtap:

When trying to profile a KDE style, I get the following errors:

...
WARNING: u*probe failed plasma-desktop[4511]
'process("/usr/lib/kde4/plugins/styles/oxygen.so").function("~KSharedPtr@/usr/include/ksharedptr.h:90").call'
addr b221c162 rc -1
...
WARNING: u*probe failed plasma-desktop[4511]
'process("/usr/lib/kde4/plugins/styles/oxygen.so").function("~QString@/usr/include/qt4/QtCore/qstring.h:869").call'
addr b221c527 rc -1
...
WARNING: u*probe failed kxkb[4521]
'process("/usr/lib/kde4/plugins/styles/oxygen.so").function("~QWeakPointer@/usr/include/qt4/QtCore/qsharedpointer_impl.h:556").call'
addr b2547b12 rc -1
...
ERROR: Skipped too many probes, check MAXSKIPPED or try again with
stap -t for more details.
WARNING: Number of errors: 0, skipped probes: 117



When looking at the source code of these functions, they look like this:
inline ~KSharedPtr() { if (d && !d->ref.deref()) delete d; }
inline QString::~QString() { if (!d->ref.deref()) free(d); }
inline ~QWeakPointer() { if (d && !d->weakref.deref()) delete d; }

Can someone explain why ubprobes fails on these functions?


The script I'm using:

global starttime;
global timetable;

probe begin
{
    printf("Begin\n");
}

probe process("/usr/lib/kde4/plugins/styles/oxygen.so").function("*").call
{
    starttime[probefunc()] = gettimeofday_ns();

    #printf("%s --> %s\n", thread_indent(1), probefunc());
}

probe process("/usr/lib/kde4/plugins/styles/oxygen.so").function("*").return
{
    if (!([probefunc()] in starttime)) next;

    delta = gettimeofday_ns() - starttime[probefunc()];
    timetable[probefunc()] <<< delta;

    #printf("%s <-- %s\n", thread_indent(-1), probefunc());
}

function print_header()
{
    printf("%60s %10s %20s %20s %20s %20s\n", "Function call",
"Called", "Total ns", "Avg ns", "Min ns", "Max ns");
}

probe end
{
    printf("\n");
    print_header();

    foreach(time in timetable)
        printf("%60s %10d %20d %20d %20d %20d\n", time,
@count(timetable[time]), @sum(timetable[time]), @avg(timetable[time]),
@min(timetable[time]), @max(timetable[time]));
}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]