In gdb_get_datatype(), the req->typecode is set as TYPE_CODE_UNDEF, and
it won't be set to other value in OP_TYPE case. If the type doesn't exist,
it will bail out in parse_expression() by exception catch of 
gdb_command_funnel(),
and req->typecode stays TYPE_CODE_UNDEF, which is expected. But if the type is
exist, it will be resolved by drillDownType(), so req->typecode shouldn't be
TYPE_CODE_UNDEF anymore, otherwise upper functions will regard this as a type
resolvation failure.

This issue only affects eppic extensions because currently the only user
of req->tcb is eppic.

Signed-off-by: Tao Liu <[email protected]>
---
 gdb-16.2.patch | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/gdb-16.2.patch b/gdb-16.2.patch
index 6767bf7..78cf605 100644
--- a/gdb-16.2.patch
+++ b/gdb-16.2.patch
@@ -2000,3 +2000,13 @@ exit 0
    /* This may be a static executable.  Look for the symbol
       conventionally named _r_debug, as a last resort.  */
    bound_minimal_symbol msymbol
+--- gdb-16.2/gdb/symtab.c.orig
++++ gdb-16.2/gdb/symtab.c
+@@ -7726,6 +7726,7 @@
+                     type = expr->evaluate_type()->type();
+ 
+                 if (req->tcb) {
++                        req->typecode = TYPE_CODE(type);
+                         drillDownType(req, type);
+                 } else {
+                         req->typecode = TYPE_CODE(type);
-- 
2.47.0
--
Crash-utility mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/
Contribution Guidelines: https://github.com/crash-utility/crash/wiki

Reply via email to