Simplest Runtime Verification System for Go

Published:

Untitled

I am walking through AST of a go source code (fibonacci) that has all the primitives that I need to keep track of for instrumentation. As a simple experiment, I want to inject instrumentation to the fibonacci so that:

  • A main text trace file holds information about:
    • channels:
      • creation (name, type, capacity, location)
      • send (sender name, value)
      • receive (receiver name, value)
      • close (name, location)
    • select:
      • subsequent channels
      • default
    • functions:
  • Any time a “go” keyword identified, a new text trace file is created to hold the above information for the newly spawned goroutine