Author: Chris Apple Date: 2024-11-21T06:32:27-08:00 New Revision: a12e79a85fc18d535c58f2c82d2b2e80586e43d7
URL: https://github.com/llvm/llvm-project/commit/a12e79a85fc18d535c58f2c82d2b2e80586e43d7 DIFF: https://github.com/llvm/llvm-project/commit/a12e79a85fc18d535c58f2c82d2b2e80586e43d7.diff LOG: [rtsan] NFC: Update docs with customizable functions (#117086) Added: Modified: clang/docs/RealtimeSanitizer.rst Removed: ################################################################################ diff --git a/clang/docs/RealtimeSanitizer.rst b/clang/docs/RealtimeSanitizer.rst index 193f5217c1a1a1..5431e38fea62ec 100644 --- a/clang/docs/RealtimeSanitizer.rst +++ b/clang/docs/RealtimeSanitizer.rst @@ -203,6 +203,44 @@ Some issues with flags can be debugged using the ``verbosity=$NUM`` flag: misspelled_flag ... +Additional customization +------------------------ + +In addition to ``__rtsan_default_options`` outlined above, you can provide definitions of other functions that affect how RTSan operates. + +To be notified on every error reported by RTsan, provide a definition of ``__sanitizer_report_error_summary``. + +.. code-block:: c + + extern "C" void __sanitizer_report_error_summary(const char *error_summary) { + fprintf(stderr, "%s %s\n", "In custom handler! ", error_summary); + /* do other custom things */ + } + +The error summary will be of the form: + +.. code-block:: console + + SUMMARY: RealtimeSanitizer: unsafe-library-call main.cpp:8 in process(std::__1::vector<int, std::__1::allocator<int>>&) + +To register a callback which will be invoked before a RTSan kills the process: + +.. code-block:: c + + extern "C" void __sanitizer_set_death_callback(void (*callback)(void)); + + void custom_on_die_callback() { + fprintf(stderr, "In custom handler!") + /* do other custom things */ + } + + int main() + { + __sanitizer_set_death_callback(custom_on_die_callback); + ... + } + + Disabling and suppressing ------------------------- _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits