Changes between Version 5 and Version 6 of StaticRootingAnalysis


Ignore:
Timestamp:
Aug 21, 2014, 10:53:05 PM (10 years ago)
Author:
Yves
Comment:

Fix table of contents

Legend:

Unmodified
Added
Removed
Modified
  • StaticRootingAnalysis

    v5 v6  
    33[[TOC]]
    44
    5 = Overview
     5== Overview
    66The static rooting analysis uses a GCC plugin to dump possible callstacks that can cause GC and statically (at compile time) analyses this data for rooting hazards.
    77
     
    1212 * There can be false positives
    1313
    14 = Requirements
     14== Requirements
    1515
    1616 * Sixgill plugin: [http://people.mozilla.org/~sfink/data/hazards-sixgill.tar.xz hazards-sixgill.tar.xz]
     
    2020Download the custom GCC and extract it where you like. This path will be called "/path/to/customgcc".
    2121
    22 = Setup
    23 == Generating .xdb files
     22== Setup
     23=== Generating .xdb files
    2424The first step is to generate the .xdb files that contain all the information generated at compile time. You need to combine the information from the SpiderMonkey build and the 0 A.D. build.
    2525
     
    48481. After the build is completed, the .xdb files in 0ad/build/workspaces/gcc should contain the information from the SpiderMonkey build and the 0 A.D. build.
    4949
    50 === Troubleshooting
     50==== Troubleshooting
    5151
    5252The following logfiles are generated when running run_complete with the correct GCC and an active sixgill plugin. You can also pass --no-logs to run_complete, which will print the logs in the console directly (except basecc.log).
     
    6161
    6262
    63 == Analyzing .xdb files
     63=== Analyzing .xdb files
    6464The second step is to run a series of scripts on the .xdb files generated in the previous step.
    6565
     
    7474You can restart analyze.py at any point. Pass --list to show the different stages, and use one of those in place of 'callgraph'. By default, it'll go from the stage you request all the way to the end.
    7575
    76 === Troubleshooting
     76==== Troubleshooting
    7777
    7878.xdb files are key value pairs. You can use the tools in /path/to/sixgill/usr/bin to inspect the data they contain.
     
    8282|| xdbkeys || List all keys || xdbkeys something.xdb ||
    8383
    84 = Reading the output
     84== Reading the output
    8585
    8686AnalyzeRoots.js will generate the following files. Examples are attached to this wiki page.