我是 ltrace 的新手。
例如。这有效:
ltrace -c -e "XDrawLine" -p 10876 ^C
% time seconds usecs/call calls function
------ ----------- ----------- --------- --------------------
100.00 4.925592 501 9829 XDrawLine
------ ----------- ----------- --------- --------------------
100.00 4.925592 9829 total
但这不匹配:
trace -c -e "XDrawLin*" -p 10876
^C
% time seconds usecs/call calls function
------ ----------- ----------- --------- --------------------
------ ----------- ----------- --------- --------------------
100.00 0.000000 0 total
同样,
-e "/XDrawLin.*/"
或-e "XDrawLin.*"
也没有运气。任何工作的例子表示赞赏。
最佳答案
-e
开关的功能是在ltrace
版本中演变而来的。即使是相当新的Linux版本,也经常发布较旧的ltrace,这很可能是您遇到的问题。 (例如,如果我没有记错的话,RHEL6的版本是0.5。)运行ltrace --v
并确保您具有0.7或更高版本。
*版本0.7.0 [2012-11-09 Fri]
**追踪
...
***对跟踪来自尾部调用函数的返回的支持有限
*** -e,-x和-l选择器现在允许使用glob和正则表达式
http://anonscm.debian.org/gitweb/?p=collab-maint/ltrace.git;a=blob_plain;f=NEWS;hb=0.7.3
如果您的ltrace较旧,请使用软件包管理器进行更新,或从http://freecode.com/projects/ltrace下载
关于c++ - 如何将ltrace与通配符一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21088536/