diff options
author | Tilghman Lesher <tilghman@meg.abyt.es> | 2010-12-18 00:08:13 +0000 |
---|---|---|
committer | Tilghman Lesher <tilghman@meg.abyt.es> | 2010-12-18 00:08:13 +0000 |
commit | b98e47d1195bd6e1da8aae20844095bec1d88847 (patch) | |
tree | 6df839e0e6f2e1b5ae9c9524ed3942edd3d562e3 /main/utils.c | |
parent | d8744246aa377d2275f6f72e745ee11bdc13bac8 (diff) |
Merged revisions 298960 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8
................
r298960 | tilghman | 2010-12-17 17:52:04 -0600 (Fri, 17 Dec 2010) | 20 lines
Merged revisions 298957 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
................
r298957 | tilghman | 2010-12-17 17:30:55 -0600 (Fri, 17 Dec 2010) | 13 lines
Merged revisions 298905 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r298905 | tilghman | 2010-12-17 15:40:56 -0600 (Fri, 17 Dec 2010) | 6 lines
Let Asterisk find better backtrace information with libbfd.
The menuselect option BETTER_BACKTRACES, if enabled, will use libbfd to search
for better symbol information within both the Asterisk binary, as well as
loaded modules, to assist when using inline backtraces to track down problems.
Review: https://reviewboard.asterisk.org/r/1055/
........
................
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@298961 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/utils.c')
-rw-r--r-- | main/utils.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/main/utils.c b/main/utils.c index 7ac62bd39..f8ec82f25 100644 --- a/main/utils.c +++ b/main/utils.c @@ -29,6 +29,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include <ctype.h> #include <sys/stat.h> +#include <sys/stat.h> #ifdef HAVE_DEV_URANDOM #include <fcntl.h> @@ -746,7 +747,7 @@ static void append_backtrace_information(struct ast_str **str, struct ast_bt *bt return; } - if ((symbols = backtrace_symbols(bt->addresses, bt->num_frames))) { + if ((symbols = ast_bt_get_symbols(bt->addresses, bt->num_frames))) { int frame_iterator; for (frame_iterator = 0; frame_iterator < bt->num_frames; ++frame_iterator) { @@ -2106,3 +2107,22 @@ int ast_get_tid(void) #endif return ret; } + +char *ast_utils_which(const char *binary, char *fullpath, size_t fullpath_size) +{ + const char *envPATH = getenv("PATH"); + char *tpath, *path; + struct stat unused; + if (!envPATH) { + return NULL; + } + tpath = ast_strdupa(envPATH); + while ((path = strsep(&tpath, ":"))) { + snprintf(fullpath, fullpath_size, "%s/%s", path, binary); + if (!stat(fullpath, &unused)) { + return fullpath; + } + } + return NULL; +} + |