mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-25 02:53:48 +08:00
gdb/
Fix debug printing of TYPE_INSTANCE. * expprint.c (print_subexp_standard) <TYPE_INSTANCE>: New. (dump_subexp_body_standard) <TYPE_INSTANCE>: New.
This commit is contained in:
parent
56c1241406
commit
600ea1bed9
@ -1,3 +1,9 @@
|
||||
2011-02-01 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Fix debug printing of TYPE_INSTANCE.
|
||||
* expprint.c (print_subexp_standard) <TYPE_INSTANCE>: New.
|
||||
(dump_subexp_body_standard) <TYPE_INSTANCE>: New.
|
||||
|
||||
2011-02-01 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Fix debug printing of BINOP_IN, OP_OBJC_MSGCALL,
|
||||
|
@ -534,6 +534,27 @@ print_subexp_standard (struct expression *exp, int *pos,
|
||||
fprintf_unfiltered (stream, ")");
|
||||
return;
|
||||
|
||||
case TYPE_INSTANCE:
|
||||
{
|
||||
LONGEST count = exp->elts[pc + 1].longconst;
|
||||
|
||||
/* The COUNT. */
|
||||
(*pos)++;
|
||||
fputs_unfiltered ("TypesInstance(", stream);
|
||||
while (count-- > 0)
|
||||
{
|
||||
type_print (exp->elts[(*pos)++].type, "", stream, 0);
|
||||
if (count > 0)
|
||||
fputs_unfiltered (",", stream);
|
||||
}
|
||||
fputs_unfiltered (",", stream);
|
||||
/* Ending COUNT and ending TYPE_INSTANCE. */
|
||||
(*pos) += 2;
|
||||
print_subexp (exp, pos, stream, PREC_PREFIX);
|
||||
fputs_unfiltered (")", stream);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Default ops */
|
||||
|
||||
default:
|
||||
@ -937,6 +958,29 @@ dump_subexp_body_standard (struct expression *exp,
|
||||
elt += 4 + BYTES_TO_EXP_ELEM (len + 1);
|
||||
}
|
||||
break;
|
||||
case TYPE_INSTANCE:
|
||||
{
|
||||
char *elem_name;
|
||||
LONGEST len;
|
||||
|
||||
len = exp->elts[elt++].longconst;
|
||||
fprintf_filtered (stream, "%s TypeInstance: ", plongest (len));
|
||||
while (len-- > 0)
|
||||
{
|
||||
fprintf_filtered (stream, "Type @");
|
||||
gdb_print_host_address (exp->elts[elt].type, stream);
|
||||
fprintf_filtered (stream, " (");
|
||||
type_print (exp->elts[elt].type, NULL, stream, 0);
|
||||
fprintf_filtered (stream, ")");
|
||||
elt++;
|
||||
if (len > 0)
|
||||
fputs_filtered (", ", stream);
|
||||
}
|
||||
/* Ending LEN and ending TYPE_INSTANCE. */
|
||||
elt += 2;
|
||||
elt = dump_subexp (exp, stream, elt);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
case OP_NULL:
|
||||
case MULTI_SUBSCRIPT:
|
||||
|
Loading…
Reference in New Issue
Block a user