[clang] a12e79a - [rtsan] NFC: Update docs with customizable functions (#117086)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Nov 21 06:32:30 PST 2024
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
-------------------------
More information about the cfe-commits
mailing list