[DexTer] Add step.UNKNOWN check for NoneType line numbers.
authorTom Weaver <Tom.Weaver@Sony.com>
Mon, 16 Mar 2020 16:38:41 +0000 (16:38 +0000)
committerTom Weaver <Tom.Weaver@Sony.com>
Mon, 16 Mar 2020 16:38:41 +0000 (16:38 +0000)
Summary: It's possible for an instance of the visual studio debugger
to return a NoneType line number location when stepping during a
debugging session.

This patches teaches DexTer how to handle this particular case without
crashing out.

Reviewers: Orlando

Differential revision: https://reviews.llvm.org/D75992

debuginfo-tests/dexter/dex/dextIR/DextIR.py

index 7638e8b..b82c2ba 100644 (file)
@@ -102,6 +102,10 @@ class DextIR:
             frame_step = self._get_prev_step_in_this_frame(step)
             prev_step = frame_step if frame_step is not None else prev_step
 
+        # If we're missing line numbers to compare then the step kind has to be UNKNOWN.
+        if prev_step.current_location.lineno is None or step.current_location.lineno is None:
+            return StepKind.UNKNOWN
+
         # We're in the same func as prev step, check lineo.
         if prev_step.current_location.lineno > step.current_location.lineno:
             return StepKind.VERTICAL_BACKWARD