我是 ltrace 的新手。
E.g。这有效:
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.*"
也没有运气。
任何工作的例子都表示赞赏。
答案 0 :(得分:2)
-e
转换的功能是在ltrace
个版本上演变而来的。即使是最新的Linux发行版也经常发布较旧的ltrace,而且最有可能是你的问题。 (例如,RHEL6如果我没记错的话,附带版本0.5。)运行ltrace --v
并确保你有0.7及以上的版本。
* Version 0.7.0 [2012-11-09 Fri] ** Tracing ... *** Limited support for tracing returns from tail call functions *** -e, -x and -l selectors now allow using globs and regular expressions
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下载