Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support env vars instead of reg keys to eliminate need for admin privileges and support same-named tests in parallel #265

Closed
derekbruening opened this issue Nov 27, 2014 · 2 comments

Comments

@derekbruening
Copy link
Contributor

From [email protected] on February 27, 2010 22:44:59

env vars avoid requiring registry access for local, non-privileged use of
DR. if switch drinject to very early injection, then only need AppInit for
services, and need admin privs there anyway

env vars vs registry: could use config file instead on both linux and
windows.

xref issue #246 : drinject.dll for tool packaging

another reason to support env vars, which are local, versus global registry
(or global config files), is to run tests whose executable has the same
name in parallel ( issue #111 ), which we do when we run with different
options which happens a little in the short (for now marking those as
RUN_SERIAL) and a lot in the long (for now the entire long is run serially
which is a shame)

Original issue: http://code.google.com/p/dynamorio/issues/detail?id=265

@derekbruening
Copy link
Contributor Author

From [email protected] on April 16, 2010 14:48:12

in r309 note that my changes to configuration and execution are NOT backward compatible and I
bumped the release number to 2.0.0 as a result. (the client API remains backward
compatible: this is just deployment that is not)

Status: Verified

@derekbruening
Copy link
Contributor Author

From [email protected] on April 16, 2010 14:50:22

I should note that the final design uses hierarchical configuration files and no
registry at all. some notes:

config file is just var=val lines:
DYNAMORIO_RUNUNDER=1
DYNAMORIO_OPTIONS=
DYNAMORIO_AUTOINJECT=/usr/share/lib/dynamorio.so
DYNAMORIO_LOGDIR=/tmp/dynamorio
DYNAMORIO_CACHE_ROOT=
DYNAMORIO_CACHE_SHARED=

hierarchy in precedence order:

  1. /appname..1config{32,64}
  2. /appname.config{32,64}
  3. /default.0config{32,64}
  4. /appname.config{32,64}
  5. /default.0config{32,64}
  6. env vars

if app-specific exists, default at that level is also read to fill in any
unspecified values.
env vars are always read and used to fill in any unspecified values.
if local exists, global is NOT read.

local for Linux is $HOME/.dynamorio, for Windows $USERPROFILE/dynamorio
global for Linux is /etc/dynamorio, for Windows ${DYNAMORIO_HOME in reg key}/config.
that's the one place (other than AppInit) a reg key is used.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant