DeHydra: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Add a very gross buglist)
Line 30: Line 30:
== Bugs ==
== Bugs ==


* P1: Need information about static variables (both global definitions and statics inside functions)
* P1: '''Fixed''' Need information about static variables (both global definitions and statics inside functions)
* P2: Need information about typedefs to properly determine type hierarchies
* P2: Need information about typedefs to properly determine type hierarchies
* P3: Need information about namespaces
* P3: Need information about namespaces

Revision as of 18:00, 5 November 2007

DeHydra is a tool inspired by UNO.

DeHydra integrates a low level C++ core and a JavaScript engine for user scripts. More info.

C++ core deals with parsing, name resolution, scoping, control flow graphs.

A user can utilize the JS engine to:

  • Write scripts using that core to accomplish custom analyses without recompilation.
  • Work on these scripts to make them progressively as sound and as complete as possible.

Quickstart

Step 1.

In a new file(test.js) define functions process & path_end:

function process(vars, state) {
 if (!state)
   state = 0;
 print(state + ": " + vars);
}

function path_end(state) {
 print(state)
}

More Details

Dehydra Paper

Bugs

  • P1: Fixed Need information about static variables (both global definitions and statics inside functions)
  • P2: Need information about typedefs to properly determine type hierarchies
  • P3: Need information about namespaces
  • P2: Won't process jsemit.ii or jsgc.ii from actionmonkey correctly (crashes)
  • P1: Won't process toolkit/components/places/src/*.ii correctly (asserts)
  • P3: It would be nice if dehydra kept information about types and typedefs around, so that when the types were used the script has immediate access to the type declarations, instead of having to cache them (not a big deal)