Commit Graph

13 Commits

Author SHA1 Message Date
Evgeniy Stepanov e98f9099a9 [msandr] Access app TLS directly in native exec mode.
In optimized hybrid execution we do not use DynamoRIO private loader, which
mangles TLS access, so we can access the application's TLS directly.

Patch by Qin Zhao.

llvm-svn: 199655
2014-01-20 13:09:29 +00:00
Evgeniy Stepanov 9fc2b966ac [msandr] Remove one more use of std::string and put all STL headers under ifdef.
llvm-svn: 197031
2013-12-11 11:38:49 +00:00
Evgeniy Stepanov 88adc5e815 [msandr] Remove std::string in dr_init for optimized hybrid execution.
Patch by Qin Zhao.

llvm-svn: 197029
2013-12-11 11:36:05 +00:00
Evgeniy Stepanov 82509b6675 [msandr] Add check-before-write optimization.
Replace blind store with check-before-store to avoid unnecessary memory stores.

Patch by Qin Zhao.

llvm-svn: 193703
2013-10-30 17:44:22 +00:00
Evgeniy Stepanov 867dd7488a [msandr] Remove use of std::set in msandr client to avoid reentrancy issues.
Patch by Qin Zhao.

llvm-svn: 193654
2013-10-29 22:19:25 +00:00
Evgeniy Stepanov ae2f76fb78 [msandr] Add support for standalone test.
Add macro MSANDR_STANDALONE_TEST for standalone test without msan executables.

Patch by Qin Zhao.

llvm-svn: 193643
2013-10-29 19:44:47 +00:00
Evgeniy Stepanov a59daaef3e [msandr] Add NATIVE_EXEC macro for building client for running in DynamoRIO hybrid mode only.
When running application in DynamoRIO hybrid mode only, only uninstrumented
modules will run in DynamoRIO and be instrumented by the client, so we do not
need module table in MSanDR.

Patch by Qin Zhao.

llvm-svn: 193411
2013-10-25 14:57:02 +00:00
Evgeniy Stepanov 8f0b7feb4c [msandr] Add debugging instructions to README.txt.
llvm-svn: 190680
2013-09-13 11:00:50 +00:00
Evgeniy Stepanov bbca4903c4 [msan] Update MSanDR build instructions.
llvm-svn: 189760
2013-09-02 14:21:12 +00:00
Evgeniy Stepanov 5d69168906 [msan] Get rid of "using std::string" in msandr.
llvm-svn: 177714
2013-03-22 08:47:42 +00:00
Reid Kleckner 2325273641 [msan] Clean up extensions during msandr shutdown
Otherwise debug DynamoRIO complains at us for leaking memory.

llvm-svn: 176947
2013-03-13 13:59:09 +00:00
Reid Kleckner c9d382b5a4 [msan] intercept dlopen and clear shadow for it
Summary:
The loader does not call mmap() through the PLT because it has to
bootstrap the process before libc is present.  Hooking dlopen() isn't
enough either because the loader runs module initializers before
returning, and they could run arbitrary msan instrumented code.

If msandr is present, then we can intercept the mmaps from dlopen at the
syscall layer and clear the shadow there.  If msandr is missing, we
clear the shadow after dlopen() and hope any initializers are trivial.

Reviewers: eugenis

CC: kcc, llvm-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D509

llvm-svn: 176818
2013-03-11 18:07:42 +00:00
Evgeniy Stepanov 3065014026 [msan] MSanDR: initial commit.
MSanDR is a DynamoRio-based tool that handles uninstrumented libraries and
dynamically generated code for MSan.

llvm-svn: 175883
2013-02-22 09:34:19 +00:00