DynamoRIO / DynamoRIO/drmemory

[win32] add cygwin g++-compiled tests

Open
#109 0 comments 0 reactions 0 assignees View on GitHub
Migrated OpSys-Windows Priority-Low
Dominant language
C
Stars
2.7k
Forks
290
PR merge metrics
No merged PRs in 30d

Description

_From [derek.br...@gmail.com](https://code.google.com/u/117968039472581148324/) on December 10, 2010 17:57:39_

PR 408515

g++-compiled apps (I was using cygwin) are much more challenging to run than cl-compiled apps:
due to all the ugly hacks cygwin uses.
in fact, "hello world" compiled with cygwin g++ has 7 uninitialized reads: 3 that are false positives
but need per-bit shadowing to resolve, and 4 that look like real bugs to me. that's rough, for
"hello world" -- one reason I got discouraged with Dr. Memory (Linux has been much simpler).

it's not clear how to add a test compiled w/ a different compiler: I'll probably need to use CTest
command mode and have a separate build directory to build the g++ tests.

cygwin apps also have a lot of base DR issues. pasting in a summary:
Cygwin apps are difficult for DR to run due to the messy hacks cygwin uses.
Here are the issues:
- cygwin apps create early threads (not safe on Windows) so do NOT rely
on AppInit or drinject: use follow_children for early injection.
note that the symptoms of a rogue native thread can be varied.
PR 215423: also note that for WOW64 cygwin (i.e., on 64-bit Windows) there
isn't really a workaround as we do not support WOW64 early injection.
- PR 213895, PR 213990: yet, follow_children has problems due to cygwin's
attempts to provide fork() on Windows. running "rebaseall -v" is the
workaround. also note that the latest cygwin is supposed to work on
Vista so it may be a little better behaved.
- PR 333891: stdout from DR or a client may not work for a cygwin app

_Original issue: http://code.google.com/p/drmemory/issues/detail?id=109_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.