diff --git a/hal/src/main/native/sim/Extensions.cpp b/hal/src/main/native/sim/Extensions.cpp index 6ef79038ae..e84c354c27 100644 --- a/hal/src/main/native/sim/Extensions.cpp +++ b/hal/src/main/native/sim/Extensions.cpp @@ -1,5 +1,5 @@ /*----------------------------------------------------------------------------*/ -/* Copyright (c) 2017-2018 FIRST. All Rights Reserved. */ +/* Copyright (c) 2017-2019 FIRST. All Rights Reserved. */ /* Open Source Software - may be modified and shared by FRC teams. The code */ /* must be accompanied by the FIRST BSD license file in the root directory of */ /* the project. */ @@ -7,8 +7,10 @@ #include "hal/Extensions.h" +#include #include #include +#include #include "hal/HAL.h" @@ -43,6 +45,9 @@ extern "C" { int HAL_LoadOneExtension(const char* library) { int rc = 1; // It is expected and reasonable not to find an extra simulation + wpi::outs() << "HAL Extensions: Attempting to load: " + << wpi::sys::path::stem(library) << "\n"; + wpi::outs().flush(); HTYPE handle = DLOPEN(library); #if !defined(WIN32) && !defined(_WIN32) if (!handle) { @@ -53,17 +58,31 @@ int HAL_LoadOneExtension(const char* library) { #else libraryName += ".so"; #endif + wpi::outs() << "HAL Extensions: Trying modified name: " + << wpi::sys::path::stem(libraryName); + wpi::outs().flush(); handle = DLOPEN(libraryName.c_str()); } #endif - if (!handle) return rc; + if (!handle) { + wpi::outs() << "HAL Extensions: Failed to load library\n"; + wpi::outs().flush(); + return rc; + } auto init = reinterpret_cast( DLSYM(handle, "HALSIM_InitExtension")); if (init) rc = (*init)(); - if (rc != 0) DLCLOSE(handle); + if (rc != 0) { + wpi::outs() << "HAL Extensions: Failed to load extension\n"; + wpi::outs().flush(); + DLCLOSE(handle); + } else { + wpi::outs() << "HAL Extensions: Successfully loaded extension\n"; + wpi::outs().flush(); + } return rc; } @@ -71,7 +90,11 @@ int HAL_LoadExtensions(void) { int rc = 1; wpi::SmallVector libraries; const char* e = std::getenv("HALSIM_EXTENSIONS"); - if (!e) return rc; + if (!e) { + wpi::outs() << "HAL Extensions: No extensions found\n"; + wpi::outs().flush(); + return rc; + } wpi::StringRef env{e}; env.split(libraries, DELIM, -1, false); for (auto& libref : libraries) {