aboutsummaryrefslogtreecommitdiffstats
path: root/doc/valgrind.txt
blob: b4a69e2167d984f0d4b6ff7387cdf273cdf9e767 (plain)
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
If you're having certain types of crashes, such as those associated with
memory corruption, a bug marshal may ask you to run Asterisk under valgrind.
You should follow these steps, to give the bug marshal the maximum amount
of information about the crash.

1.  Run 'make menuselect' and in the Compiler Options, enable MALLOC_DEBUG
	and DONT_OPTIMIZE.  A bug marshal may also ask you to enable additional
	compiler flags, such as DEBUG_THREADS, depending upon the nature of the
	issue.

2.  Rebuild and install Asterisk.

3.  Run Asterisk as follows:
	valgrind --log-file-exactly=valgrind.txt asterisk -vvvvcg 2>malloc_debug.txt

	UPDATE:  The newest version of valgrind has eliminated the
	--log-file-exactly option.  If you are running valgrind 3.3.0 or higher,
	just use the --log-file option, keeping in mind that Valgrind will append
	a trailing suffix onto valgrind.txt.

4.  Reproduce the issue.  Following the manifestation of the issue (or when
	the process crashes), upload the two files, valgrind.txt and
	malloc_debug.txt to the issue tracker.  If you are using the --log-file
	option, note that valgrind.txt will have a trailing suffix.  That's fine,
	just upload that file.

Please note that even if valgrind prevents Asterisk from crashing, the
information logged may STILL be of use to developers, so please upload the
resulting log file whether Asterisk crashes or not.