about summary refs log tree commit diff
path: root/instrumentation/README.out_of_line.md
diff options
context:
space:
mode:
Diffstat (limited to 'instrumentation/README.out_of_line.md')
-rw-r--r--instrumentation/README.out_of_line.md21
1 files changed, 21 insertions, 0 deletions
diff --git a/instrumentation/README.out_of_line.md b/instrumentation/README.out_of_line.md
new file mode 100644
index 00000000..aad215b6
--- /dev/null
+++ b/instrumentation/README.out_of_line.md
@@ -0,0 +1,21 @@
+===========================================
+Using afl++ without inlined instrumentation
+===========================================
+
+  This file describes how you can disable inlining of instrumentation.
+
+
+By default, the GCC plugin will duplicate the effects of calling
+__afl_trace (see afl-gcc-rt.o.c) in instrumented code, instead of
+issuing function calls.
+
+The calls are presumed to be slower, more so because the rt file
+itself is not optimized by the compiler.
+
+Setting AFL_GCC_OUT_OF_LINE=1 in the environment while compiling code
+with the plugin will disable this inlining, issuing calls to the
+unoptimized runtime instead.
+
+You probably don't want to do this, but it might be useful in certain
+AFL debugging scenarios, and it might work as a fallback in case
+something goes wrong with the inlined instrumentation.