[clang] [rtsan] NFC: Update docs with customizable functions (PR #117086)

Chris Apple via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 20 16:47:49 PST 2024


https://github.com/cjappl created https://github.com/llvm/llvm-project/pull/117086

These functions recently were helpful for a user, so I decided to add them to the official docs.

Any feedback on wording or content appreciated as always 

>From 056fa6a787efb0721b30fee6e0bdea9843e303d4 Mon Sep 17 00:00:00 2001
From: Chris Apple <cja-private at pm.me>
Date: Wed, 20 Nov 2024 16:46:37 -0800
Subject: [PATCH] [rtsan] NFC: Update docs with customizable functions

---
 clang/docs/RealtimeSanitizer.rst | 38 ++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

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