extern const char **ompd_dll_locations;
Summary The ompd_dll_locations global variable points to the locations of OMPD libraries that are compatible with the OpenMP implementation.
Description An OpenMP runtime may have more than one OMPD library. The third-party tool must be able to locate the right library to use for the OpenMP program that it is examining. The OpenMP runtime system must provide a public variable ompd_dll_locations, which is an argv-style vector of filename string pointers that provides the names of any compatible OMPD libraries. This variable must have C linkage. The third-party tool uses the name of the variable verbatim and, in particular, does not apply any name mangling before performing the look up.
The architecture on which the third-party tool and, thus, the OMPD library execute does not have to match the architecture on which the OpenMP program that is being examined executes. The third-party tool must interpret the contents of ompd_dll_locations to find a suitable OMPD library that matches its own architectural characteristics. On platforms that support different architectures (for example, 32-bit vs 64-bit), OpenMP implementations are encouraged to provide an OMPD library for each supported architecture that can handle OpenMP programs that run on any supported architecture. Thus, for example, a 32-bit debugger that uses OMPD should be able to debug a 64-bit OpenMP program by loading a 32-bit OMPD implementation that can manage a 64-bit OpenMP runtime.
The ompd_dll_locations variable points to a NULL-terminated vector of zero or more NULL-terminated pathname strings that do not have any filename conventions. This vector must be fully initialized before ompd_dll_locations is set to a non-null value. Thus, if a third-party tool, such as a debugger, stops execution of the OpenMP program at any point at which ompd_dll_locations is non-null, the vector of strings to which it points shall be valid and complete.