Bugfix for issue 1
diff --git a/coverage-tool/coverage-reporting/intermediate_layer.py b/coverage-tool/coverage-reporting/intermediate_layer.py
index 2d11824..be1fab7 100644
--- a/coverage-tool/coverage-reporting/intermediate_layer.py
+++ b/coverage-tool/coverage-reporting/intermediate_layer.py
@@ -254,10 +254,10 @@
 
     :return: Dictionary with function name as key and line number as value
     """
-    function_lines = os_command(
-        "ctags -x --c-kinds=f {}".format(source_file)).split("\n")
+    command = "ctags -x --c-kinds=f {}".format(source_file)
     fln = {}
     try:
+        function_lines = os_command(command).split("\n")
         for line in function_lines:
             cols = line.split()
             if len(cols) < 3:
@@ -269,6 +269,10 @@
     except BaseException:
         logger.warning("Warning: Can't get all function line numbers from %s" %
                        source_file)
+    except Exception as ex:
+        logger.warning(f"Warning: Unknown error '{ex}' when executing command '{command}'")
+        return {}
+
     return fln
 
 
@@ -593,8 +597,8 @@
 OBJDUMP = None
 READELF = None
 FUNCTION_LINES_ENABLED = None
-SOURCE_PATTERN = (r'(?s)([a-zA-Z0-0_]+)?(?:\(\):\n)?(^/.+?):([0-9]+)'
-                  r'(?: \(.+?\))?\n(.+?)(?=\n/|\n$|([a-zA-Z0-0_]+\(\):))')
+SOURCE_PATTERN = (r'(?s)([a-zA-Z0-9_]+)?(?:\(\):\n)?(^/.+?):([0-9]+)'
+                  r'(?: \(.+?\))?\n(.+?)(?=\n/|\n$|([a-zA-Z0-9_]+\(\):))')
 
 
 def main():