[srslte-users] segfault in srsenb phy init

J Giovatto jgiovatto at adjacentlink.com
Thu Nov 9 22:05:00 UTC 2017


Hi folks,

I'm new to this project and am in the process of trying to integrate
srsLTE into our EMANE emulator.

The hope is to run the all the services on top of our emulated physical
layer.

I started off with ./srsenb/test/upper/ip_test_enb and added a
rf_faux_XXX family of device calls which I hope to handle later within EMANE

but I can across a segfault here:


Devel/LTE/srsLTE/lib/src/phy/rf/rf_faux_imp.c
func:rf_faux_suppress_stdout line:98
Devel/LTE/srsLTE/lib/src/phy/rf/rf_faux_imp.c func:rf_faux_devname line:49
Devel/LTE/srsLTE/lib/src/phy/rf/rf_faux_imp.c func:rf_faux_devname line:49
Devel/LTE/srsLTE/lib/src/phy/rf/rf_faux_imp.c func:rf_faux_devname line:49

Warning burst preamble is not calibrated for device faux_rf_dev. Set a
value manually

Devel/LTE/srsLTE/lib/src/phy/rf/rf_faux_imp.c func:rf_faux_set_tx_freq
line:200
Devel/LTE/srsLTE/lib/src/phy/rf/rf_faux_imp.c func:rf_faux_set_tx_gain
line:163
gain 70.000000
Devel/LTE/srsLTE/lib/src/phy/rf/rf_faux_imp.c func:rf_faux_set_rx_freq
line:186
Devel/LTE/srsLTE/lib/src/phy/rf/rf_faux_imp.c func:rf_faux_set_rx_gain
line:154
gain 50.000000

Thread 1 "ip_test_enb" received signal SIGSEGV, Segmentation fault.
0x0000000000453590 in srsenb::phy::init(srsenb::phy_args_t*,
srsenb::phy_cfg_t*, srslte::radio*, srsenb::mac_interface_phy*,
srslte::log*) ()
Missing separate debuginfos, use: dnf debuginfo-install
boost-atomic-1.60.0-10.fc25.x86_64 boost-chrono-1.60.0-10.fc25.x86_64
boost-date-time-1.60.0-10.fc25.x86_64
boost-filesystem-1.60.0-10.fc25.x86_64
boost-program-options-1.60.0-10.fc25.x86_64
boost-regex-1.60.0-10.fc25.x86_64
boost-serialization-1.60.0-10.fc25.x86_64
boost-system-1.60.0-10.fc25.x86_64 boost-test-1.60.0-10.fc25.x86_64
boost-thread-1.60.0-10.fc25.x86_64 boost-timer-1.60.0-10.fc25.x86_64
fftw-libs-single-3.3.5-3.fc25.x86_64 libcap-2.25-2.fc25.x86_64
libgcc-6.4.1-1.fc25.x86_64 libicu-57.1-5.fc25.x86_64
libselinux-2.5-13.fc25.x86_64 libstdc++-6.4.1-1.fc25.x86_64
libusbx-1.0.21-1.fc25.x86_64 mbedtls-2.6.0-1.fc25.x86_64
openssl-libs-1.0.2k-1.fc25.x86_64 pcre-8.41-1.fc25.x86_64
pkcs11-helper-1.11-8.fc24.x86_64 systemd-libs-231-17.fc25.x86_64
uhd-3.10.1.0-1.fc25.x86_64 zlib-1.2.8-10.fc24.x86_64
(gdb) bt
#0  0x0000000000453590 in srsenb::phy::init(srsenb::phy_args_t*,
srsenb::phy_cfg_t*, srslte::radio*, srsenb::mac_interface_phy*,
srslte::log*) ()
#1  0x000000000042ce74 in main ()

I made this change and seems to do the trick

diff --git a/srsenb/src/phy/phy.cc b/srsenb/src/phy/phy.cc
index c0d0a73..87cd1a9 100644
--- a/srsenb/src/phy/phy.cc
+++ b/srsenb/src/phy/phy.cc
@@ -91,7 +91,7 @@ bool phy::init(phy_args_t *args,
 {
   std::vector<void*> log_vec;
   for (int i=0;i<args->nof_phy_threads;i++) {
-    log_vec[i] = (void*) log_h;
+    log_vec.push_back((void*)log_h);
   }
   init(args, cfg, radio_handler_, mac, log_vec);
   return true;

Regards

Joseph Giovatto

Adjacent Link LLC





More information about the srsran-users mailing list