Как использовать ltrace с подстановочными знаками

Я новичок в ltrace.

  • Я хотел бы использовать подстановочные знаки (шаблоны) для отслеживания вызовов функций, но они, кажется, не работают должным образом, основываясь на веб-страницах, которые я вижу, например. http://man7.org/linux/man-pages/man1/ltrace.1.html

Например. это работает:

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.*" или.
Любой рабочий пример приветствуется.

  • Если с этим разобрались, я бы хотел перейти к тому, как отследить символы C ++ lib. Должен ли я использовать искаженный или освобожденный формат?

2

Решение

Функциональность -e переключатель эволюционировал ltrace релизы. Даже довольно недавние выпуски Linux часто поставлялись с более старой версией ltrace, и это, скорее всего, проблема для вас. (Например, RHEL6, если я правильно помню, поставляется с версией 0.5.) Выполнить ltrace --v и убедитесь, что у вас версия 0.7 и выше.

* Версия 0.7.0 [пт 2012-11-09]

** Трассировка
...

*** Ограниченная поддержка отслеживания возвратов из функций хвостового вызова

Селекторы *** -e, -x и -l теперь позволяют использовать глобусы и регулярные выражения

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

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]