Lines Matching +full:docs +full:- +full:clang +full:- +full:tools +full:- +full:man

12 The Scudo Hardened Allocator is a user-mode allocator, originally based on LLVM
14 `CombinedAllocator <https://github.com/llvm/llvm-project/blob/main/compiler-rt/lib/sanitizer_common…
21 `shield <https://www.collinsdictionary.com/dictionary/italian-english/scudo>`_
28 ---------
37 - the Primary allocator: fast and efficient, it services smaller allocation
42 - the Secondary allocator: slower, it services larger allocation sizes via the
47 - the thread specific data Registry: defines how local caches operate for each
52 - the Quarantine: offers a way to delay the deallocation operations, preventing
55 which can help mitigate some use-after-free situations. This feature is fairly
60 ------------------
64 - being to store various information about the chunk, that can be leveraged to
67 - being able to detect potential corruption. For this purpose, the header is
74 - the class ID for that chunk, which identifies the region where the chunk
77 - the state of the chunk (available, allocated or quarantined);
79 - the allocation type (malloc, new, new[] or memalign), to detect potential
82 - the size (Primary) or unused bytes amount (Secondary) for that chunk, which is
83 necessary for reallocation or sized-deallocation operations;
85 - the offset of the chunk, which is the distance in bytes from the beginning of
88 - the 16-bit checksum;
100 copies and use compare-exchange primitives to update the headers in the heap
101 memory, and avoid any type of double-fetching.
104 ----------
107 provide pages at (mostly) non-predictable locations in memory, as well as the
114 -----------------
128 --------
134 -------
137 the ``check-scudo_standalone`` CMake rule.
140 ``whole-archive`` linker flag (or equivalent), depending on your linker.
150 cd $LLVM/compiler-rt/lib
151 clang++ -fPIC -std=c++17 -msse4.2 -O2 -pthread -shared \
152 -I scudo/standalone/include \
154 -o $HOME/libscudo.so
162 Clang section in Usage
163 -----
164 With a recent version of Clang (post rL317337), the "old" version of the
166 ``-fsanitize=scudo`` command-line argument, if the target platform is supported.
168 (eg: ``-fsanitize=scudo,undefined``). Compiling with Scudo will also enforce
174 -------
178 - at compile time, by defining ``SCUDO_DEFAULT_OPTIONS`` to the options string
181 - by defining a ``__scudo_default_options`` function in one's program that
186 - through the environment variable SCUDO_OPTIONS, containing the options string
190 - via the standard ``mallopt`` `API <https://man7.org/linux/man-pages/man3/mallopt.3.html>`_,
200 SCUDO_OPTIONS="delete_size_mismatch=false:release_to_os_interval_ms=-1" ./a.out
207 return "delete_size_mismatch=false:release_to_os_interval_ms=-1";
213 +---------------------------------+----------------+-----------------------------------------------…
215 +---------------------------------+----------------+-----------------------------------------------…
223 +---------------------------------+----------------+-----------------------------------------------…
226 +---------------------------------+----------------+-----------------------------------------------…
227 | thread_local_quarantine_size_kb | 0 | The size (in Kb) of per-thread cache use to …
233 +---------------------------------+----------------+-----------------------------------------------…
236 +---------------------------------+----------------+-----------------------------------------------…
239 +---------------------------------+----------------+-----------------------------------------------…
242 +---------------------------------+----------------+-----------------------------------------------…
245 +---------------------------------+----------------+-----------------------------------------------…
246 | may_return_null | true | Whether or not a non-fatal failure can return …
248 +---------------------------------+----------------+-----------------------------------------------…
252 +---------------------------------+----------------+-----------------------------------------------…
262 | | | If your sync-mode MTE faults do not have …
269 +---------------------------------+----------------+-----------------------------------------------…
272 `GWP-ASan <https://llvm.org/docs/GwpAsan.html>`_ support.
277 +---------------------------+-------------------------------------------------------+
279 +---------------------------+-------------------------------------------------------+
284 +---------------------------+-------------------------------------------------------+
291 +---------------------------+-------------------------------------------------------+
295 +---------------------------+-------------------------------------------------------+
300 +---------------------------+-------------------------------------------------------+
301 | M_THREAD_DISABLE_MEM_INIT | Tunes the per-thread memory initialization, 0 being |
304 +---------------------------+-------------------------------------------------------+
307 +---------------------------+-------------------------------------------------------+
310 +---------------------------+-------------------------------------------------------+
313 +---------------------------+-------------------------------------------------------+
322 and might not be the most useful of tools to help you root-cause the issue,
328 - ``"corrupted chunk header"``: the checksum verification of the chunk header
333 - ``"race on chunk header"``: two different threads are attempting to manipulate
335 race-condition or general lack of locking when performing operations on that
338 - ``"invalid chunk state"``: the chunk is not in the expected state for a given
340 quarantined when trying to recycle it, etc. A double-free is the typical
343 - ``"misaligned pointer"``: we strongly enforce basic alignment requirements, 8
344 bytes on 32-bit platforms, 16 bytes on 64-bit platforms. If a pointer passed
347 - ``"allocation type mismatch"``: when the optional deallocation type mismatch
352 - ``"invalid sized delete"``: when the C++14 sized delete operator is used, and
355 …it. This is likely to be a `compiler issue <https://software.intel.com/en-us/forums/intel-c-compil…
359 - ``"RSS limit exhausted"``: the maximum RSS optionally specified has been