fche changed the topic of #systemtap to: http://sourceware.org/systemtap; email systemtap@sourceware.org if answers here not timely, conversations may be logged
modem has quit [Ping timeout: 248 seconds]
nkambo has joined #systemtap
nkambo has quit [Remote host closed the connection]
litb has joined #systemtap
<litb>
hello folks
<litb>
why does systemtap complain that it couldn't match a function name and proposes similar function names that actually match exactly?
litb is now known as Guest40013
Guest40013 is now known as litb
<litb>
this is what i gave: probe process("qtconfig-qt4").function("_ZN7QWidget14setWindowTitleERK7QString") { print($parm1) }
<litb>
and it complains: semantic error: no match (similar functions: _ZN7QWidget14setWindowTitleERK7QString, _ZN7QWidget10setToolTipERK7QString, _ZN11QMessageBox14setWindowTitleERK7QString, _ZN7QWidget12setWhatsThisERK7QString, _ZN7QWidget13setWindowIconERK5QIcon)
<litb>
(neither did it work using non-mangled notation)
<fche>
litb, not sure, pls consider opening a bug report; is there a $parm1 by the way?
<litb>
fche: yes
<litb>
it's a QString const&
<litb>
fche: perhaps it doesn't support reference parameter types, and tries to unmangle the name, failing at the reference?
<fche>
don't think that'd show up at the dwarf level
<fche>
is this a function defined within the qtconfig* binary, or is it in a shared library called from there?
<litb>
fche: defined as external inline function in a .so file (clasś member)
<litb>
i guess that means it's emitted in the binary?
<litb>
fche: actually it wasn't inline. I tried probe process("/usr/lib/libQtGui.so.4.8.7").function("*") { print(probefunc(), "\n") } | c++filt | grep 'QWidget::setWindow and it actually prints QWidget::setWindowTitle(QString const&)
<litb>
fche: but when the function isn'T "*" but "QWidget::setWindowTitle", it gives the above match error
<fche>
try a wildcard like *QWidget*setWindowTitle*
<litb>
fche: fun, then it works. weird
<litb>
it matches multiple symbols, including the one i wanted to match
<fche>
try narrowing the wildcard down further; might be good enough