我在apps/
文件夹中添加了一个自定义模块,用于注册到ast_channel_topic_all
主题。遗憾的是,每次加载模块时星号都会出现段错误。
#include "asterisk.h"
#include "asterisk/module.h"
#include "asterisk/json.h"
#include "asterisk/stasis.h"
#include "asterisk/stasis_channels.h"
#include "asterisk/manager.h"
ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#define AST_MODULE "stasis_test"
static struct stasis_subscription *queue_stasis_message_sub;
static void queue_subscribe_callback(void *data, struct stasis_subscription *sub, struct stasis_topic *topic, struct stasis_message *message){
struct ast_channel_blob *payload = stasis_message_data(message);
// ...
}
static int unload_module(void) {
stasis_unsubscribe_and_join(queue_stasis_message_sub);
return 0;
}
static int load_module(void) {
queue_stasis_message_sub = stasis_subscribe(ast_channel_topic_all(), queue_subscribe_callback, NULL);
if ( !queue_stasis_message_sub ) {
unload_module();
return AST_MODULE_LOAD_DECLINE;
}
return AST_MODULE_LOAD_SUCCESS;
}
AST_MODULE_INFO(
ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, AST_MODULE,
.load = load_module,
.unload = unload_module
);
导致此错误的原因是什么?期待你的回复。 顺便说一句,我使用的星号版本是13.10。
答案 0 :(得分:0)
这个问题是调试问题。
https://wiki.asterisk.org/wiki/display/AST/Getting+a+Backtrace