|
@@ -13,6 +13,7 @@
|
|
|
#include <map>
|
|
|
#include <iostream>
|
|
|
#include <fstream>
|
|
|
+#include <string>
|
|
|
|
|
|
#include <ipc_debug.h>
|
|
|
|
|
@@ -32,8 +33,12 @@ constexpr size_t INITIAL_BUFFER_SIZE = 5 * 1024 * 1024; // 5 MiB
|
|
|
void print_backtrace();
|
|
|
|
|
|
void debug_ipc_init() {
|
|
|
- MPI_Comm_rank(MPI_COMM_WORLD, &rank);
|
|
|
- MPI_Comm_size(MPI_COMM_WORLD, &cluster_size);
|
|
|
+ int mpi_initialized;
|
|
|
+ MPI_Initialized(&mpi_initialized);
|
|
|
+ if (mpi_initialized) {
|
|
|
+ MPI_Comm_rank(MPI_COMM_WORLD, &rank);
|
|
|
+ MPI_Comm_size(MPI_COMM_WORLD, &cluster_size);
|
|
|
+ }
|
|
|
|
|
|
if (rank == 0) {
|
|
|
const char *root_env = std::getenv("IPC_DEBUG_ROOT");
|
|
@@ -154,6 +159,7 @@ template void debug_ipc_assert_equal<int32_t>(int32_t);
|
|
|
template void debug_ipc_assert_equal<uint64_t>(uint64_t);
|
|
|
template void debug_ipc_assert_equal<int64_t>(int64_t);
|
|
|
template void debug_ipc_assert_equal<bool>(bool);
|
|
|
+template void debug_ipc_assert_equal<std::string>(std::string);
|
|
|
|
|
|
void debug_ipc_assert_equal_double(double value) {
|
|
|
debug_ipc_assert_equal<double>(value);
|
|
@@ -208,7 +214,10 @@ void debug_ipc_assert_equal_array(void *value, size_t size) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+void debug_ipc_assert_source_location(const char *source_file, const long int line_number) {
|
|
|
+ debug_ipc_assert_equal(std::string(source_file));
|
|
|
+ debug_ipc_assert_equal(line_number);
|
|
|
+}
|
|
|
|
|
|
#include <backward.hpp>
|
|
|
|