joxeankoret / pigaios

A tool for matching and diffing source codes directly against binaries.
GNU General Public License v3.0
634 stars 67 forks source link

Exports fail when Clang bindings are not present #1

Closed WanderingGlitch closed 6 years ago

WanderingGlitch commented 6 years ago
$ python ~/w/git/srctobindiff/srcbindiff.py -export
Traceback (most recent call last):
  File "LALALAND/w/git/srctobindiff/srcbindiff.py", line 181, in <module>
    main()
  File "LALALAND/w/git/srctobindiff/srcbindiff.py", line 164, in main
    exporter.export(use_clang, opencl, gnu)
  File "LALALAND/w/git/srctobindiff/srcbindiff.py", line 98, in export
    exporter = clang_exporter.CClangExporter(self.cfg_file)
NameError: global name 'clang_exporter' is not defined

From srcbindiff.py:

try:
  from exporters import clang_exporter
  has_clang = True
except ImportError:
  has_clang = False
class CSBDExporter:
  def __init__(self, cfg_file):
    self.cfg_file = cfg_file

  def export(self, use_clang, opencl, gnu):
    exporter = None
    if use_clang:
      exporter = clang_exporter.CClangExporter(self.cfg_file)
    else:
      exporter = pycparser_exporter.CPyCParserExporter(self.cfg_file, gnu, opencl)
def main():
  use_clang = True
# ...
    elif arg in ["-export", "-e"]:
      exporter = CSBDExporter(project_file)
      exporter.export(use_clang, opencl, gnu)

main() should use has_clang as part of use_clang

joxeankoret commented 6 years ago

Fixed with 331490c195841259faa2f5c0d0aac612f6539fca