Data Race Detector

by Devexperts

Child pages
  • Quick start guide

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Download the last DRD version and unzip it to some folder (we'll further refer to it as DRD_HOME_DIR)
  2. Go to DRD_HOME_DIR/config directory. Rename two files in it: config-example.xml to config.xml and hb-config-example.xml to hb-config.xml
  3. Open config.xml. Find RaceDetection section and assure that rules inside it cover exactly your application and nothing more. Usually it's enough to have one rule based on unique prefix of your application packages. Also check that SyncInterception section is empty and defaultPolicy is "*":

    Code Block
    languagexml
    <SyncInterception defaultPolicy="include"/>
    
    <RaceDetection defaultPolicy="exclude">
        <Rule type="include" path="com/my/company/"/>
    </RaceDetection>
  4. Open drd.properties. Set "drd.config.dir" and "drd.log.dir" properties:

    Code Block
    drd.log.dir= #Absolute path to desired log dir. I.e. D:\Projects\DRD\log
    drd.configlog.dir= 
    
    #Absolute path to DRD_HOME_DIR\config (if DRD_HOME_DIR=D:\Projects\DRD\ thatthan itset wouldthis beproperty to D:\Projects\DRD\config
    drd.config.dir= 
  5. Locate exact place where java (javaw, ...) is actually executed to launch your application. Add DRD java agent and settings to launch parameters the following (note, prepend):

    Code Block
    languagebash
    java -javaagent:DRD_HOME_DIR/drd_agent.jar -Ddrd.settings.file=DRD_HOME_DIR/config/drd.properties <your old launch parameters>


    That's it! If everything is fine, your application would start normally (most likely it work slower that usual). DRD results would be logged into three files in specified log directory.

...