Ejemplo n.º 1
0
 def testProgramToText(self):
     v1 = self.prog.NewVariable()
     b = v1.AddBinding("x", [], self.current_location)
     n = self.current_location.ConnectNew()
     v2 = self.prog.NewVariable()
     v2.AddBinding("y", {b}, n)
     assert isinstance(debug.program_to_text(self.prog), str)  # smoke test
Ejemplo n.º 2
0
def _maybe_output_debug(options, program):
    if options.output_debug:
        text = debug.program_to_text(program)
        if options.output_debug == "-":
            log.info("=========== Program Dump =============\n%s", text)
        else:
            with open(options.output_debug, "w") as fi:
                fi.write(text)
Ejemplo n.º 3
0
def _maybe_output_debug(options, program):
  """Maybe emit debugging output."""
  if options.output_cfg or options.output_typegraph:
    dot = debug.program_to_dot(program, set([]), bool(options.output_cfg))
    proc = subprocess.Popen(["/usr/bin/dot", "-T", "svg", "-o",
                             options.output_cfg or options.output_typegraph],
                            stdin=subprocess.PIPE)
    proc.stdin.write(dot)
    proc.stdin.close()
  if options.output_debug:
    text = debug.program_to_text(program)
    if options.output_debug == "-":
      log.info("=========== Program Dump =============\n%s", text)
    else:
      with open(options.output_debug, "w") as fi:
        fi.write(text)
Ejemplo n.º 4
0
def _maybe_output_debug(options, program):
  """Maybe emit debugging output."""
  if options.output_cfg or options.output_typegraph:
    dot = debug.program_to_dot(program, set([]), bool(options.output_cfg))
    svg_file = options.output_cfg or options.output_typegraph
    proc = subprocess.Popen(["/usr/bin/dot", "-T", "svg", "-o", svg_file],
                            stdin=subprocess.PIPE, universal_newlines=True)
    (_, stderr) = proc.communicate(dot)
    if stderr:
      log.info("Failed to create %s: %s", svg_file, stderr)
  if options.output_debug:
    text = debug.program_to_text(program)
    if options.output_debug == "-":
      log.info("=========== Program Dump =============\n%s", text)
    else:
      with options.open_function(options.output_debug, "w") as fi:
        fi.write(text)