This repository has been archived by the owner on Nov 12, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 12
/
README
81 lines (62 loc) · 2.56 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
MUTRACE Mutex Tracer
GIT:
https://github.com/bconry/mutrace.git
GITWEB:
https://github.com/bconry/mutrace
USAGE:
matrace [matrace-options] <command>
mutrace [mutrace-options] <command>
NOTES:
For a terse overview what mutrace can do for you, please read
the announcement blog story:
http://0pointer.de/blog/projects/mutrace.html
The tarball includes two profilers:
mutrace profiles lock contention for you. Just use it as
prefix for your usual command line and it will profile
mutexes used in all child processes. Example:
mutrace gedit
matrace traces memory allocation operations in realtime
threads for you. It is of no use in applications that do not
make use of realtime scheduling. Example:
matrace myrealtimetool
Both tools understand a --debug-info switch in which case the
backtraces generated will include debugging information such as
line numbers and source file names. This is not enabled by
default since generating those traces is not always safe in
situations where locks are taken or memory allocated as we do
it here. YMMV.
mutrace cannot be used to profile glibc-internal mutexes.
LICENSE:
LGPLv3+
Exception:
backtrace-symbols.c is GPLv2+. Which probably means that using
the --debug-info switch for mutrace and matrace might not be
legally safe for non-GPL-compatible applications. However,
since that module is independantly built into a seperate .so
it should still be safe using the profilers without this
switch on such software.
AUTHORS:
Brian Conry
Carlo Marcelo Arenas Belon
Dana M. Diederich
Daniel Suo
David Bennett
Eric Bollengier
Lénaïc Huard
Lennart Poettering
Łukasz Czerwiński
Maxime Lubin
Michel Alexandre Salim
Philip Withnall
REQUIREMENTS:
Recent gcc, glibc, Linux
KNOWN ISSUES:
On Ubuntu 14.04, libiberty package has been modified.
Install package libiberty-dev instead of binutils-dev.
Also note libiberty includes have moved from
/usr/include to /usr/include/libiberty. You may need to
change the include directive in backtrace-symbols.c and
/usr/include/bfd.h.
When using --full-bt options, you may need to send USR1
signal to mutrace instead of simply exiting the process,
as the full debug info may not be available any longer.