Asterisk module dev: Difference between revisions
Line 13: | Line 13: | ||
valgrind --suppressions=/usr/src/asterisk/contrib/valgrind.supp --log-fd=9 asterisk -vvvvcg 9>valgrind.txt | valgrind --suppressions=/usr/src/asterisk/contrib/valgrind.supp --log-fd=9 asterisk -vvvvcg 9>valgrind.txt | ||
Reproduce the issue. Following the manifestation of the issue (or when the process crashes), upload the valgrind.txt to the issue tracker. | Reproduce the issue. Following the manifestation of the issue (or when the process crashes), upload the valgrind.txt to the issue tracker. | ||
</pre> | |||
최적화 옵션 On/Off 설정은 Compiler Flags 항목에 있다. | |||
<pre> | |||
--- Core --- | |||
[*] DONT_OPTIMIZE | |||
... | |||
</pre> | </pre> | ||
Revision as of 20:50, 22 October 2016
Ovreview
Asterisk module 만들어보기
Valgrind test
정확한 내용은 이곳<ref>https://wiki.asterisk.org/wiki/display/AST/Valgrind</ref>에서 확인할 수 있다.
Valgrind test 를 하기 위해서는 먼저 Asterisk 를 최적화 옵션을 끈채로 소스 컴파일을 하고, 이후 supp 파일과 함께 valgrind 를 실행하면 된다.
Run 'make menuselect' and in the Compiler Options, enable DONT_OPTIMIZE. A bug marshal may also ask you to enable additional compiler flags depending upon the nature of the issue. Rebuild and install Asterisk. Run Asterisk as follows, where /usr/src/asterisk/ is location of asterisk source code. valgrind --suppressions=/usr/src/asterisk/contrib/valgrind.supp --log-fd=9 asterisk -vvvvcg 9>valgrind.txt Reproduce the issue. Following the manifestation of the issue (or when the process crashes), upload the valgrind.txt to the issue tracker.
최적화 옵션 On/Off 설정은 Compiler Flags 항목에 있다.
--- Core --- [*] DONT_OPTIMIZE ...
Core file
보통 Asterisk 를 컴파일을 하면 코어파일이 생기지 않는다.
코어파일이 남지 않으면 디버깅이 힘들어진다. 다음의 작업을 해주자.<ref>http://stackoverflow.com/questions/20743376/asterisk-gdb-how-to-debug-crash-with-gdb-and-asterisk-11-5-1-but-still-core-dunp</ref>
1) compile asterisk with debug symbols 2) in /etc/asterisk/asterisk.conf enable core dump.
더 자세한 디버깅 옵션을 확인하고 싶다면 이곳<ref>http://www.voip-info.org/wiki/view/Asterisk+debugging</ref>을 참조하자.
Backtracing
Backtracing a core dump file in /tmp
start Asterisk with safe_asterisk enter "gdb asterisk core.xxxx" enter "bt" while in gdb (or do a "bt full") enter "thread apply all bt"
TEST_FRAMEWORK
Asterisk 에서 제공하는 TEST 소스 파일들을 컴파일하고 테스트하기 위해서는 TEST_FRAMEWORK 를 활성화 시켜야 한다. TEST_FRAMEWORK 를 활성화시키지 않으면 다음과 memuselect 에서 다음과 같은 메시지가 나온다.
XXX test_pbx XXX test_poll ... More ... ACL test module Depends on: TEST_FRAMEWORK(E)
TEST_FRAMEWORK 활성화는 ./configure 실행시, --enable-dev-mode 옵션과 함께 실행하면 활성화 된다.
$ ./configure --enable-dev-mode
See also
- https://wiki.asterisk.org/wiki - Asterisk wiki 페이지.
- http://lists.digium.com/mailman/listinfo/asterisk-devhttp://lists.digium.com/mailman/listinfo/asterisk-dev - Asterisk project 관련 메일링 사이트
- http://blog.russellbryant.net/2008/06/19/how-to-write-an-asterisk-module-part-1/ - How-to: Write an Asterisk Module, Part 1
- http://matthewjordan.net/2014/07/29/writing-an-asterisk-module/ - Writing an Asterisk Module
References
<references />