summaryrefslogtreecommitdiff
path: root/cross-project-tests
diff options
context:
space:
mode:
authorOrlando Cazalet-Hyams <orlando.hyams@sony.com>2025-08-27 17:03:29 +0100
committerGitHub <noreply@github.com>2025-08-27 17:03:29 +0100
commitab459c47d354614dcdc3d6f5045c22e5eb4a0b3f (patch)
treeeab4a62ffed66f02c1ebe1c352a5348d48b1bccb /cross-project-tests
parent8a5a7829a373cb0be352b2fe7fa292de032564a7 (diff)
[Dexter] add get_pc (#152719)
Diffstat (limited to 'cross-project-tests')
-rw-r--r--cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerBase.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerBase.py b/cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerBase.py
index dd5cc5d3f023..f8bee4ecb423 100644
--- a/cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerBase.py
+++ b/cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerBase.py
@@ -233,6 +233,17 @@ class DebuggerBase(object, metaclass=abc.ABCMeta):
def evaluate_expression(self, expression, frame_idx=0) -> ValueIR:
pass
+ def get_pc(self, frame_idx: int = 0) -> str:
+ """Get the current PC in frame at frame_idx depth.
+ frame_idx 0 is the current function.
+ """
+ r = self.evaluate_expression("$pc", frame_idx)
+ if not r.could_evaluate or r.is_optimized_away or r.is_irretrievable:
+ raise DebuggerException(
+ "evaluating '$pc' failed - possibly unsupported by the debugger"
+ )
+ return r.value
+
def _external_to_debug_path(self, path):
if not self.options.debugger_use_relative_paths:
return path