mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-03 11:25:35 +00:00
astobj2: assert on invalid ref and backtrace cleanup
If a reference count goes negative, instead of just logging that fact, be more helpful with a backtrace and an assert that will DO_CRASH. This patch also removes the duplicate ao2_bt() function and cleans up extraneous usage of the ast_log_backtrace() call. Review: https://reviewboard.asterisk.org/r/3765/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@418963 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1759,14 +1759,14 @@ void ast_log_backtrace(void)
|
||||
}
|
||||
|
||||
if ((strings = ast_bt_get_symbols(bt->addresses, bt->num_frames))) {
|
||||
ast_debug(1, "Got %d backtrace record%c\n", bt->num_frames, bt->num_frames != 1 ? 's' : ' ');
|
||||
ast_verbose("Got %d backtrace record%c\n", bt->num_frames, bt->num_frames != 1 ? 's' : ' ');
|
||||
for (i = 3; i < bt->num_frames - 2; i++) {
|
||||
ast_debug(1, "#%d: [%p] %s\n", i - 3, bt->addresses[i], strings[i]);
|
||||
ast_verbose("#%d: [%p] %s\n", i - 3, bt->addresses[i], strings[i]);
|
||||
}
|
||||
|
||||
ast_std_free(strings);
|
||||
} else {
|
||||
ast_debug(1, "Could not allocate memory for backtrace\n");
|
||||
ast_verbose("Could not allocate memory for backtrace\n");
|
||||
}
|
||||
ast_bt_destroy(bt);
|
||||
#else
|
||||
|
Reference in New Issue
Block a user