Errors in C export need to report module/register/field context for diagnosis
eg. This is really unhelpful.
Traceback (most recent call last):
File ".venv/bin/csr-export", line 4, in <module>
main()
File ".venv/lib/python3.6/site-packages/csrParse/csrExport.py", line 54, in main
packageOptions.exporterOptions.exporter.to_source( packageOptions, csrData )
File ".venv/lib/python3.6/site-packages/csrParse/csr/exporter/c/export.py", line 127, in to_source
mapExport.generate( thisMap, registerMapName )
File ".venv/lib/python3.6/site-packages/registerMap/utility/export/c/registerMap.py", line 98, in generate
self.__createModuleFiles( registerMapName, encapsulatedMemory, moduleElements )
File ".venv/lib/python3.6/site-packages/registerMap/utility/export/c/registerMap.py", line 118, in __createModuleFiles
registerMapName = registerMapName )
File ".venv/lib/python3.6/site-packages/registerMap/utility/export/c/module.py", line 44, in outputModule
registerMapName = registerMapName )
File ".venv/lib/python3.6/site-packages/jinja2/asyncsupport.py", line 76, in render
return original_render(self, *args, **kwargs)
File ".venv/lib/python3.6/site-packages/jinja2/environment.py", line 1008, in render
return self.environment.handle_exception(exc_info, True)
File ".venv/lib/python3.6/site-packages/jinja2/environment.py", line 780, in handle_exception
reraise(exc_type, exc_value, tb)
File "venv/lib/python3.6/site-packages/jinja2/_compat.py", line 37, in reraise
raise value.with_traceback(tb)
File "registerMap/utility/export/c/templates/idiomatic/module_template.h", line 26, in top-level template code
{%- for bitField in thisRegister.fields %}
File ".venv/lib/python3.6/site-packages/jinja2/environment.py", line 430, in getattr
return getattr(obj, attribute)
File ".venv/lib/python3.6/site-packages/registerMap/utility/export/base/register.py", line 76, in fields
registerIntervals = makeContiguous( self._element.bitMap.sourceIntervals, (self._element.sizeBits - 1) )
File ".venv/lib/python3.6/site-packages/registerMap/structure/interval/contiguous.py", line 33, in makeContiguous
sortedIntervals = sortIntervals( intervals )
File ".venv/lib/python3.6/site-packages/registerMap/structure/interval/sort.py", line 39, in sortIntervals
assert not anyOverlap( intervals )
File ".venv/lib/python3.6/site-packages/registerMap/structure/interval/overlap.py", line 70, in anyOverlap
reviewingInterval = intervalSet.pop()
KeyError: 'pop from an empty set'