pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
compiler-rt-netbsd: add TODO.fuzzer
Module Name: pkgsrc-wip
Committed By: Yang Zheng <tomsun.0.7%gmail.com@localhost>
Pushed By: tomsun.0.7
Date: Wed May 2 17:23:56 2018 +0000
Changeset: dd543464c140e63bb6e8bd797e33a6a115447598
Added Files:
compiler-rt-netbsd/TODO.fuzzer
Log Message:
compiler-rt-netbsd: add TODO.fuzzer
TODO.fuzzer is a TODO file for libFuzzer integration.
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=dd543464c140e63bb6e8bd797e33a6a115447598
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
compiler-rt-netbsd/TODO.fuzzer | 102 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 102 insertions(+)
diffs:
diff --git a/compiler-rt-netbsd/TODO.fuzzer b/compiler-rt-netbsd/TODO.fuzzer
new file mode 100644
index 0000000000..f57066c719
--- /dev/null
+++ b/compiler-rt-netbsd/TODO.fuzzer
@@ -0,0 +1,102 @@
+compiler-rt profile v.s. -pg
+I. compiler-rt profile
+ Similar to GCC gcov tool, LLVM can provide llvm-cov to interpret profiling data for each line of code.
+ One can add "--coverage" or "-fcoverage-mapping" flags to generate necessary information for this tool.
+ This is pure software method, which means the information is generated from AST or something else.
+II. -pg
+ This flag is usually used to collect information for gprof. The unit is function instead of source line.
+Summary:
+ The basic units of profiling are different. llvm-cov/gcov is line-based, while gprof is function-based.
+Do we need llvm-cov for libFuzzer?
+ I don't think so. It seems there is no relationship between these two. However, there is something named
+ "SanitizerCoverage"(https://clang.llvm.org/docs/SanitizerCoverage.html) utilizing sanitizer to help with
+ profiling. But I still think they are necessary for libFuzzer itself.
+
+
+
+
+libFuzzer Failed cases (make check-fuzzer):
+I. "pthread_tsd" Category
+ All of these cases can be reproduced by commands like:
+ % clang -fsanitize=address,fuzzer -special_flags source_file
+ % ./a.out
+ If there are multiple source files, they should be compiled and run separately. The results will be like:
+ INFO: Seed: 2796805091
+ INFO: Loaded 1 modules (10 inline 8-bit counters): 10 [0x763b70, 0x763b7a),
+ INFO: Loaded 1 PC tables (10 PCs): 10 [0x543a70,0x543b10),
+ assertion "pthread__tsd_destructors[key] != NULL" failed: file "/usr/src/lib/libpthread/pthread_tsd.c", line 176, function "pthread__add_specific"
+ [1] Abort trap ./a.out
+
+ ID. case_name, source_file, special_flags_if_exist".
+ 1. bad-strcmp.test, BadStrcmpTest.cpp
+ 2. cleanse.test, CleanseTest.cpp
+ 3. disable-leaks.test, AccumulateAllocationsTest.cpp
+ 4. exit-report.test, SimpleTest.cpp
+ 5. fuzzer-custommutator.test, CustomMutatorTest.cpp, -Icompiler-rt-source/lib/fuzzer
+ 6. fuzzer-customcrossoverandmutate.test, CustomCrossOverAndMutateTest.cpp, -Icompiler-rt-source/lib/fuzzer
+ 7. equivalence.test, EquivalenceATest.cpp
+ 8. cxxstring.test, CxxStringEqTest.cpp
+ 9. caller-callee.test, CallerCalleeTest.cpp
+ 10. fuzzer-dirs.test, SimpleTest.cpp
+ 11. fuzzer-dict.test, SimpleDictionaryTest.cpp
+ 12. exit_on_src_pos.test, SimpleTest.cpp
+ 13. fuzzer-fdmask.test, SpamyTest.cpp
+ 14. fuzzer-customcrossover.test, CustomCrossOverTest.cpp
+ 15. fuzzer-finalstats.test, SimpleTest.cpp
+ 16. max-number-of-runs.test, AccumulateAllocationsTest.cpp
+ 17. memcmp64.test, Memcmp64BytesTest.cpp
+ 18. fuzzer-flags.test, FlagsTest.cpp
+ 19. fuzzer-runs.test, NthRunCrashTest.cpp
+ 20. fuzzer-seed.test, NullDerefTest.cpp
+ 21. fuzzer-segv.test, NullDerefTest.cpp
+ 22. memcmp.test, MemcmpTest.cpp
+ 23. fuzzer-timeout.test, TimeoutTest.cpp
+ 24. fuzzer-printcovpcs.test, SimpleTest.cpp
+ 25. fuzzer-ubsan.test, SignedIntOverflowTest.cpp
+ 26. inline-8bit-counters.test, SimpleTest.cpp
+ 27. fuzzer-leak.test, LeakTest.cpp:ThreadedLeakTest.cpp:LeakTimeoutTest.cpp
+ 28. recommended-dictionary.test, RepeatedMemcmp.cpp
+ 29. fuzzer-threaded.test, ThreadedTest.cpp
+ 30. merge-control-file.test, FullCoverageSetTest.cpp
+ 31. merge-posix.test, FullCoverageSetTest.cpp
+ 32. merge-summary.test, FullCoverageSetTest.cpp
+ 33. merge.test, FullCoverageSetTest.cpp
+ 34. shrink.test, ShrinkControlFlowTest.cpp:ShrinkValueProfileTest.cpp
+ 35. reduce_inputs.test, ShrinkControlFlowSimpleTest.cpp:ShrinkControlFlowTest.cpp
+ 36. minimize_two_crashes.test, TwoDifferentBugsTest.cpp
+ 37. overwrite-input.test, OverwriteInputTest.cpp
+ 38. fuzzer-singleinputs.test, NullDerefTest.cpp:SimpleTest.cpp
+ 39. print-func.test, PrintFuncTest.cpp
+ 40. minimize_crash.test, NullDerefTest.cpp:SingleByteInputTest.cpp
+ 41. simple-cmp.test, SimpleCmpTest.cpp
+ 42. strcmp.test, StrcmpTest.cpp
+ 43. merge-sigusr.test, SleepOneSecondTest.cpp
+ 44. strncmp.test, StrncmpTest.test
+ 45. swap-cmp.test, SwapCmpTest.cpp
+ 46. repeated-bytes.test, RepeatedBytesTest.cpp
+ 47. fuzzer-oom.test, OutOfMemoryTest.cpp:OutOfMemorySingleLargeMalloc.cpp:AccumulateAllocationsTest.cpp
+ 48. value-profile-cmp3.test, AbsNegAndConstantTest.cpp
+ 49. value-profile-cmp4.test, AbsNegAndConstant64Test.cpp
+ 50. value-profile-cmp.test, SimpleCmpTest.cpp
+ 51. value-profile-mem.test, SingleMemcmpTest.cpp
+ 52. strstr.test, StrstrTest.cpp
+ 53. sigusr.test, SleepOneSecondTest.cpp
+ 54. value-profile-strcmp.test, SingleStrcmpTest.cpp
+ 55. value-profile-strncmp.test, SingleStrncmpTest.cpp
+ 56. trace-malloc-2.test, TraceMallocTest.cpp
+ 57. trace-malloc-unbalanced.test, TraceMallocTest.cpp
+ 58. value-profile-switch.test, SwitchTest.cpp:Switch2Test.cpp
+ 59. trace-pc.test, SimpleTest.cpp
+ 60. trace-malloc.test, TraceMallocTest.cpp
+ 61. ulimit.test, SimpleTest.cpp
+ 62. value-profile-div.test, DivTest.cpp
+ 63. value-profile-load.test, LoadTest.cpp
+ 64. trace-malloc-threaded.test, TraceMallocThreadedTest.cpp
+ 65. value-profile-set.test, FourIndependentBranchesTest.cpp
+ 66. equivalence-signals.test, EquivalenceATest.cpp
+ 67. dump_coverage.test, NullDerefTest.cpp
+ 68. coverage.test, NUllDerefTest.cpp
+ 69. fuzzer.test, FullCoverageSetTest.cpp
+II. Complex One
+ 70. afl-driver-extra-stats.test
+ Not sure yet.
Home |
Main Index |
Thread Index |
Old Index