diff options
author | Kostya Serebryany <kcc@google.com> | 2016-05-06 21:58:35 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2016-05-06 21:58:35 +0000 |
commit | 52b394e9813c9dad61fbf4f53a934da3fc17b7fa (patch) | |
tree | d03a17067e4757b046052c33749ac23249a8adb7 /llvm/lib/Fuzzer/FuzzerLoop.cpp | |
parent | e88946223ca73d423c4eb5e669474898b5b3ade7 (diff) | |
download | llvm-52b394e9813c9dad61fbf4f53a934da3fc17b7fa.zip llvm-52b394e9813c9dad61fbf4f53a934da3fc17b7fa.tar.gz llvm-52b394e9813c9dad61fbf4f53a934da3fc17b7fa.tar.bz2 |
[libFuzzer] add exeprimental -rss_limit_mb flag to fight against OOMs
llvm-svn: 268807
Diffstat (limited to 'llvm/lib/Fuzzer/FuzzerLoop.cpp')
-rw-r--r-- | llvm/lib/Fuzzer/FuzzerLoop.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/Fuzzer/FuzzerLoop.cpp b/llvm/lib/Fuzzer/FuzzerLoop.cpp index 3b0b339..e02ebcf 100644 --- a/llvm/lib/Fuzzer/FuzzerLoop.cpp +++ b/llvm/lib/Fuzzer/FuzzerLoop.cpp @@ -176,6 +176,17 @@ void Fuzzer::AlarmCallback() { } } +void Fuzzer::RssLimitCallback(size_t RssPeakMb, size_t RssLimitMb) { + Printf("==%d== ERROR: libFuzzer: out-of-memory (used: %zdMb; limit: %zdMb)\n", + GetPid(), RssPeakMb, RssLimitMb); + Printf("*****************************************************************\n"); + Printf("** Experimental! TODO: dump the stack trace and the reproducer **\n"); + Printf("*****************************************************************\n"); + Printf("SUMMARY: libFuzzer: out-of-memory\n"); + PrintFinalStats(); + _Exit(Options.ErrorExitCode); // Stop right now. +} + void Fuzzer::PrintStats(const char *Where, const char *End) { size_t ExecPerSec = execPerSec(); if (Options.OutputCSV) { |