debug_utilities: Create the ast_coredumper utility
authorGeorge Joseph <gjoseph@digium.com>
Wed, 11 Jan 2017 00:10:39 +0000 (17:10 -0700)
committerGeorge Joseph <gjoseph@digium.com>
Wed, 11 Jan 2017 18:11:45 +0000 (12:11 -0600)
commit0d53c91fbaec97a94788945044a060403a9f0bce
tree627aff2d100fcf171030a501348292c12e239c14
parenta0a74030ac5a8c31298da71a9e601e8ccc29711a
debug_utilities:  Create the ast_coredumper utility

This utility allows easy manipulation of asterisk coredumps.

* Configurable search paths and patterns for existing coredumps
* Can generate a consistent coredump from the running instance
* Can dump the lock_infos table from a coredump
* Dumps backtraces to separate files...
  - thread apply 1 bt full -> <coredump>.thread1.txt
  - thread apply all bt -> <coredump>.brief.txt
  - thread apply all bt full -> <coredump>.full.txt
  - lock_infos table -> <coredump>.locks.txt
* Can tarball corefiles and optionally delete them after processing
* Can tarball results files and optionally delete them after processing
* Converts ':' in coredump and results file names '-' to facilitate
  uploading.  Jira for instance, won't accept file names with colons
  in them.

Tested on Fedora24+, Ubuntu14+, Debian6+, CentOS6+ and FreeBSD9+[1].

[1] For *BSDs, the "devel/gdb" package might have to be installed to
get a recent gdb.  The utility will check all instances of gdb
it finds in $PATH and if one isn't found that can run python, it
prints a friendly error.

Change-Id: I935d37ab9db85ef923f32b05579897f0893d33cd
(cherry picked from commit cb47b4556053cd50d9102eef913671ad0306062d)
configs/samples/ast_debug_tools.conf.sample [new file with mode: 0644]
contrib/Makefile
contrib/scripts/ast_coredumper [new file with mode: 0755]