[llvm-dev] tsan_interface_java.h; any users? reviving https://github.com/google/java-thread-sanitizer?

Jiri Danek via llvm-dev llvm-dev at lists.llvm.org
Thu Aug 31 02:31:30 PDT 2017


>
> On Aug 30, 2017, at 12:51 AM, Jiri Danek via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
> I found https://github.com/google/java-thread-sanitizer, which seems to
> be now abandoned. It used to work with ThreadSanitizer v1. Has anybody ever
> tried to make it work with the current ThreadSanitizer?
>
> I gave it a try and bending java-thread-sanitizer to my needs seems doable
so far:

1) making java-thread-sanitizer compile with Gradle and run its example
under Java 8, check (although I have to pass -noverify to JVM)
2) LD_PRELOADing libtsan.so to JVM, accessing it from JNA, check
3) reproducing one tsan test (tests/rtl/tsan_mop.cc) with Java threads and
made up pointers passed to __tsan_write*(), check
3) disabling Garbage Collection in JVM (just to possibly simplify things)
cannot be done, but it should not matter, because System.identityHashcode
should be unchanging, so check

With that, just put that all together and I should have a sanitizer for
java.

Only problem so far is that I don't have alternative for __tsan_func_entry,
so I cannot have reasonable stacktraces in TSan error messages. I should be
able to work around it during Java code instrumentation, to save myself
enough info to be able to make sense of the impoverished TSan messages.

Cheers,
-- 
Jiří Daněk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170831/b44d566a/attachment.html>


More information about the llvm-dev mailing list