Skip to content

Instrument

Brian Tsau edited this page Jun 11, 2019 · 1 revision

Instrument (package edu.columbia.cs.psl.ioclones.instrument)

FlowCloneInstrumenter

Extends ASM's ClassVisitor, and for each method within a class that is not a:

  • Interface
  • Synthetic
  • toString
  • equals
  • hashCode create a FlowMethodObserver

FlowCloneTransformer

Extends ASM's ClassFileTransformer, used in both PreMain and Instrumenter, populates the metadata structure of a method and class through FlowCloneInstrumenter for a given Java class.

FlowMethodObserver

Extends ASM's MethodVisitor and implements ASM's Opcodes. FlowMethodObserver serves to resolve types for each instruction in a method. I believe that it detects the types that are used in both the deep hash algorithm and generation of a method signature to be used in its key in the database.

Instrumenter

A script to instrument all classes within a directory through FlowCloneTransformer. Seems to perform a similar functionality to PreMain, and maybe serves as an alternative to ClassDataTraverser. However, Instrumenter is not seen used in any other classes.

Documentation belonging to the development of HitoshiIO can be found here. However, some files are still poorly documented, and some are not used at all in the current version of the system and exist for further development/research.

Below is the organization of HitoshiIO's source code:

  1. Root
  2. Analysis
  3. Config
  4. Driver
  5. Instrument
  6. Pojo
  7. Premain
  8. Similarity
  9. Utilities
  10. Xml Converter
Clone this wiki locally