model-checking / cbmc-viewer

CBMC Viewer scans the output of CBMC and produces a browsable summary of its findings, making it easy to root cause the issues it finds.
https://model-checking.github.io/cbmc-viewer/
Apache License 2.0
32 stars 11 forks source link

Viewer fails when function names contain colons #39

Closed vecchiot-aws closed 2 years ago

vecchiot-aws commented 3 years ago

Though not possible with C names, Rust function names (fully qualified names) can contain colons, which causes the following error to occur:

Traceback (most recent call last):
  File "/Users/vecchiot/Documents/aws-viewer-for-cbmc/cbmc-viewer", line 33, in <module>
    sys.exit(load_entry_point('cbmc-viewer', 'console_scripts', 'cbmc-viewer')())
  File "/Users/vecchiot/Documents/aws-viewer-for-cbmc/cbmc_viewer/viewer.py", line 167, in viewer
    coverage = coveraget.do_make_coverage(args.viewer_coverage,
  File "/Users/vecchiot/Documents/aws-viewer-for-cbmc/cbmc_viewer/coveraget.py", line 548, in do_make_coverage
    return CoverageFromCbmcXml(cbmc_coverage, srcdir)
  File "/Users/vecchiot/Documents/aws-viewer-for-cbmc/cbmc_viewer/coveraget.py", line 390, in *init*
    [load_cbmc_xml(xml_file, root) for xml_file in xml_files]
  File "/Users/vecchiot/Documents/aws-viewer-for-cbmc/cbmc_viewer/coveraget.py", line 390, in <listcomp>
    [load_cbmc_xml(xml_file, root) for xml_file in xml_files]
  File "/Users/vecchiot/Documents/aws-viewer-for-cbmc/cbmc_viewer/coveraget.py", line 408, in load_cbmc_xml
    coverage = add_coverage_data(coverage, description, status, srcloc)
  File "/Users/vecchiot/Documents/aws-viewer-for-cbmc/cbmc_viewer/coveraget.py", line 428, in add_coverage_data
    locations = parse_coverage_description(description)
  File "/Users/vecchiot/Documents/aws-viewer-for-cbmc/cbmc_viewer/coveraget.py", line 481, in parse_coverage_description
    return parse_basic_block(match.group(1))
  File "/Users/vecchiot/Documents/aws-viewer-for-cbmc/cbmc_viewer/coveraget.py", line 487, in parse_basic_block
    return [location
  File "/Users/vecchiot/Documents/aws-viewer-for-cbmc/cbmc_viewer/coveraget.py", line 489, in <listcomp>
    for location in parse_chunk(chunk)]
  File "/Users/vecchiot/Documents/aws-viewer-for-cbmc/cbmc_viewer/coveraget.py", line 495, in parse_chunk
    filename, function, lines = chunk.split(':')
ValueError: too many values to unpack (expected 3)

I have a PR about to be submitted which fixes this.

markrtuttle commented 2 years ago

Closing as resolved by https://github.com/awslabs/aws-viewer-for-cbmc/pull/40