这就是我初始化“libtorrent::session ses”变量的方式:
ses( fingerprint( "UT", LIBTORRENT_VERSION_MAJOR, 8, 7, 0 )
, std::make_pair( 49152, 65534 )
, "0.0.0.0"
, session::add_default_plugins
, alert::progress_notification
)
但是,在会话构造函数中执行此行期间,我收到了 EXC_BAD_ACCESS code=1:
init(listen_port_range, listen_interface, print, alert_mask);
这是 init 方法的完整源代码供参考,给出错误的行可以在以下代码段中找到:
session(fingerprint const& print
, std::pair<int, int> listen_port_range
, char const* listen_interface = "0.0.0.0"
, int flags = start_default_features | add_default_plugins
, int alert_mask = alert::error_notification
TORRENT_LOGPATH_ARG_DEFAULT)
{
TORRENT_CFG();
TORRENT_ASSERT(listen_port_range.first > 0);
TORRENT_ASSERT(listen_port_range.first < listen_port_range.second);
init(listen_port_range, listen_interface, print, alert_mask);
#if defined TORRENT_VERBOSE_LOGGING || defined TORRENT_LOGGING || defined TORRENT_ERROR_LOGGING
set_log_path(logpath);
#endif
start(flags);
}
我读过罪魁祸首可能是一个僵尸,即一个已被释放的变量,但是,我不确定我在初始化期间传入的哪些变量可能已经被释放,它们看起来都很好大部头书。
问题是,为什么我在 libtorrent::session 变量初始化期间收到 EXC_BAD_ACCESS 错误?
任何提示或建议将不胜感激。