These changes enable external debuggers to conveniently interface with the LLVM OpenMP Library. Structures are added which describe the important internal structures of the OpenMP Library e.g., teams, threads, etc. This feature is turned on by default (LIBOMP_USE_DEBUGGER) and can be turned off with -DLIBOMP_USE_DEBUGGER=off.
On May 28th, 2015, Olga Malysheva wrote:
Thank you for your comment. We'll add more comments for this code.
- __kmp_debugging can be set by a debugger to notify OpenMP RTL that it is run under the debugger.
- The ident parameter is used in kmp_omp_num_threads() function to check if the number of threads was changed by the debugger for the parallel which location was specified by the ident. Please, see usage of kmp_omp_num_threads() (together with kmp_debugging) in kmp_fork_call() function.
Currently, Intel Debugger (IDB) is supported.
Addressing Hal's requests with new patch.
Please document how, by whom, and when this can be set.
How is the ident parameter used? (please document that)
While I don't object to this commit, I'll note that what we hope will be a standard for an OpenMP debugging interface known as OMPD is under active development. The current draft is posted here: https://github.com/OpenMPToolsInterface/OMPD-Technical-Report
A group at LLNL and Totalview is working to refine the spec. LLNL has developed patches to another version of the Intel runtime to support an OMPD prototype.