update to DR r1572 for:
1) DRi#888 fix to allow invoking drsym routines from a
   drsym enumeration, which is required for i#986;
2) DRi#863 fix to avoid a leak when -replace_malloc
   aborts on OOM, which is required for i#986 tests.


git-svn-id: https://drmemory.googlecode.com/svn/trunk@1010 5b54908e-ead4-fc18-b48a-0285e6dbc711
fixes issue 1010
+ fix regression in multi-dst fastpath from r301
+ add test of multi-dst to registers.c

git-svn-id: https://drmemory.googlecode.com/svn/trunk@1011 5b54908e-ead4-fc18-b48a-0285e6dbc711
fixes issue 1005

Clear allocator type flags when re-using from free list

git-svn-id: https://drmemory.googlecode.com/svn/trunk@1012 5b54908e-ead4-fc18-b48a-0285e6dbc711
fixes issue 1007

Move zeroing into replace_alloc_common() for all callers

git-svn-id: https://drmemory.googlecode.com/svn/trunk@1013 5b54908e-ead4-fc18-b48a-0285e6dbc711
Fix version= arg to package.cmake for DrMemory

DynamoRIO uses VERSION_NUMBER and DrMemory uses TOOL_VERSION_NUMBER to
not conflict.

Review URL: https://codereview.appspot.com/6497088

git-svn-id: https://drmemory.googlecode.com/svn/trunk@1014 5b54908e-ead4-fc18-b48a-0285e6dbc711
fixes issue 986
fixes i#607 part D

Distinguish operators without overload type info, for i#882, for
Linux/Mingw where drsyms doesn't support type info as well as
for Windows system libs like msvcp*.dll (== i#607 part D).

Strategy:
1) Ask for mangled name for Linux/Mingw and compare to known
   mangled types.  If that fails, go to 2.  For PDB, go to 2.
2) Decode the function.  If straight-line, assume placement.
   Give up on nothrow: only matters on OOM anyway.

If we don't have syms at all (and thus don't see the operators) we're
probably in fine shape for placement or nothrow as both are inlined
for both g++ and MSVS with nothrow calling out to libc regular.

Added an ignore_exit_code property to the test suite to use for
replace_operators as -replace_malloc calls dr_exit_process(1) in lieu of
throwing an exception.

Added new tests replace_operators and replace_operatorsMDd (for i#607 part D).
Tested manually on operators.cpp built with mingw.

git-svn-id: https://drmemory.googlecode.com/svn/trunk@1015 5b54908e-ead4-fc18-b48a-0285e6dbc711
i#350: replace wcschr and wcsrchr
+ also added tests of these two to the app suite

git-svn-id: https://drmemory.googlecode.com/svn/trunk@1016 5b54908e-ead4-fc18-b48a-0285e6dbc711
fixes issue 1011
+ add app suite to pre-commit test suite

git-svn-id: https://drmemory.googlecode.com/svn/trunk@1017 5b54908e-ead4-fc18-b48a-0285e6dbc711
fixes issue 181
+ replace strcasecmp and strncasecmp using app libc's tolower()
  or if not found a hardcoded ascii tolower
+ replace stpcpy
+ add strcasecmp test to app suite
  including a test of deutsch locale
+ add strncasecmp and stpcpy tests to app suite

git-svn-id: https://drmemory.googlecode.com/svn/trunk@1018 5b54908e-ead4-fc18-b48a-0285e6dbc711
i#946 64-bit Linux system calls, part 1
+ broad update of the table via script to get the numbers right
+ manual tweak of syscalls whose name varies:
  mmap, fcntl, stat, lstat, fstat

The strategy tries to support mixed-mode (i#1013) later on, so instead of
ifdef-based splits, it pays the indirection cost of a hashtable lookup.
There's still a single static table w/ both numbers packed into the num
field and one selected at runtime.

Still TODO in later parts:
+ socketcall and ipc syscall routing
+ add more recent syscalls
+ add some _posix tests to app_suite: as it is it's really hard to
  tell whether I broke anything w/ the current suite

git-svn-id: https://drmemory.googlecode.com/svn/trunk@1019 5b54908e-ead4-fc18-b48a-0285e6dbc711
i#945: 64-bit windows app system calls, part 1

Changed the tables to store the arg count rather than the arg size which
makes for a big diff but will be much less confusing long-term.

Also updated the script, and found and fixed some bugs in the table where
flags were added to the count instead of the flags field!

git-svn-id: https://drmemory.googlecode.com/svn/trunk@1020 5b54908e-ead4-fc18-b48a-0285e6dbc711
i#1014: Add a cpackappend= arg to package.cmake

This gives the caller of package.cmake an escape hatch to pass arbitrary
options to cpack.

My intention is to use it like this on the bots:
cpackappend='set(CPACK_PACKAGE_FILE_NAME "DrMemory-package")'

By setting the package name, I can make the directory that cpack uses to
stage the .zip archive predictable.  I can use that to make a 7-zip
self-extracting exe of it instead of a zipfile, which is what the Chrome
scripts expect.

Review URL: https://codereview.appspot.com/6499085

git-svn-id: https://drmemory.googlecode.com/svn/trunk@1021 5b54908e-ead4-fc18-b48a-0285e6dbc711