Fix find_path in omnitrace-dl (#59)

- added some verbosity

[ROCm/rocprofiler-systems commit: 5583168dbc]
This commit is contained in:
Jonathan R. Madsen
2022-06-21 00:27:37 -05:00
committed by GitHub
parent 536a0bf9d4
commit ec7f84b60c
3 changed files with 66 additions and 16 deletions
@@ -70,7 +70,8 @@ ignore(const char* _name, int _verbose, int _value, const char* _reason, Args...
fprintf(stderr,
"[omnitrace][" OMNITRACE_COMMON_LIBRARY_NAME
"][%li] %s(%s) was ignored :: %s\n",
get_thread_index(), _name, join(", ", _args...).c_str(), _reason);
get_thread_index(), _name, join(QuoteStrings{}, ", ", _args...).c_str(),
_reason);
fflush(stderr);
}
}
@@ -100,7 +101,8 @@ invoke(const char* _name, int _verbose, bool& _toggle, FuncT&& _func, Args... _a
fprintf(stderr,
"[omnitrace][" OMNITRACE_COMMON_LIBRARY_NAME
"][%li][%i] %s(%s)\n",
get_thread_index(), _lk, _name, join(", ", _args...).c_str());
get_thread_index(), _lk, _name,
join(QuoteStrings{}, ", ", _args...).c_str());
fflush(stderr);
}
return std::invoke(std::forward<FuncT>(_func), _args...);
@@ -111,7 +113,8 @@ invoke(const char* _name, int _verbose, bool& _toggle, FuncT&& _func, Args... _a
fprintf(stderr,
"[omnitrace][" OMNITRACE_COMMON_LIBRARY_NAME
"][%li] %s(%s) was guarded :: value = %i\n",
get_thread_index(), _name, join(", ", _args...).c_str(), _lk);
get_thread_index(), _name,
join(QuoteStrings{}, ", ", _args...).c_str(), _lk);
fflush(stderr);
}
}
@@ -120,7 +123,7 @@ invoke(const char* _name, int _verbose, bool& _toggle, FuncT&& _func, Args... _a
fprintf(stderr,
"[omnitrace][" OMNITRACE_COMMON_LIBRARY_NAME
"][%li] %s(%s) ignored :: null function pointer\n",
get_thread_index(), _name, join(", ", _args...).c_str());
get_thread_index(), _name, join(QuoteStrings{}, ", ", _args...).c_str());
}
using return_type = decltype(std::invoke(std::forward<FuncT>(_func), _args...));
@@ -78,6 +78,28 @@ as_string(ArgT&& _v, std::enable_if_t<!is_string<ArgT>::value, long> = 0)
template <typename DelimT, typename... Args>
auto
join(DelimT&& _delim, Args&&... _args)
{
std::stringstream _ss{};
_ss << std::boolalpha;
OMNITRACE_FOLD_EXPRESSION(_ss << _delim << _args);
auto _ret = _ss.str();
if constexpr(std::is_same<DelimT, char>::value)
{
return (_ret.length() > 1) ? _ret.substr(1) : std::string{};
}
else
{
auto&& _len = std::string{ _delim }.length();
return (_ret.length() > _len) ? _ret.substr(_len) : std::string{};
}
}
struct QuoteStrings
{};
template <typename DelimT, typename... Args>
auto
join(QuoteStrings&&, DelimT&& _delim, Args&&... _args)
{
std::stringstream _ss{};
_ss << std::boolalpha;