Bug 31441 - [gdb/python] Add gdb.Value.entirely_available and gdb.Value.entirely_unavailable
Summary: [gdb/python] Add gdb.Value.entirely_available and gdb.Value.entirely_unavailable
Status: NEW
Alias: None
Product: gdb
Classification: Unclassified
Component: python (show other bugs)
Version: HEAD
: P2 enhancement
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-03-02 08:01 UTC by Tom de Vries
Modified: 2024-03-02 08:58 UTC (History)
0 users

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tom de Vries 2024-03-02 08:01:32 UTC
Before this commit:
...
commit bbb12eb9c84aa2b32480b7c022c494c2469ef717
Author: Thiago Jung Bauermann <thiago.bauermann@linaro.org>
Date:   Mon Feb 26 19:11:45 2024 -0300

    gdb/arm: Remove tpidruro register from non-FreeBSD target descriptions
   
...
test-case gdb.base/inline-frame-cycle-unwind.exp failed on arm-linux.

I managed to write a test-case fix:
...
diff --git a/gdb/testsuite/gdb.base/inline-frame-cycle-unwind.py b/gdb/testsuite/gdb.base/inline-frame-cycle-unwind
.py
index 278fa857d5d..0110fc74276 100644
--- a/gdb/testsuite/gdb.base/inline-frame-cycle-unwind.py
+++ b/gdb/testsuite/gdb.base/inline-frame-cycle-unwind.py
@@ -65,6 +65,13 @@ class TestUnwinder(Unwinder):
 
         for reg in pending_frame.architecture().registers("general"):
             val = pending_frame.read_register(reg)
+            have_bytes = True
+            try:
+                val.bytes
+            except Exception:
+                have_bytes = False
+            if not have_bytes:
+                continue
             unwinder.add_saved_register(reg, val)
         return unwinder
...
which made we wonder why we have gdb.Value.is_optimized_out, but not the is_entirely_available or is_entirely_unavailable variants.
Comment 1 Tom de Vries 2024-03-02 08:57:31 UTC
(In reply to Tom de Vries from comment #0)
> I managed to write a test-case fix:

FWIW, in PR pyhon/31437 I wrote a fix on the gdb side for this.
Comment 2 Tom de Vries 2024-03-02 08:58:36 UTC
Hmm, so we have value::optimized_out and gdb.Value.is_optimized_out. Perhaps we should also have the is_ prefix here.