This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: Fwd: Obvious: doc fix for 'struct memrange' in tracepoints.c
On 11/19/05, Eli Zaretskii <eliz@gnu.org> wrote:
> How about introducing a macro, so that the code speaks for itself?
How does this look?
gdb/ChangeLog:
2005-11-19 Jim Blandy <jimb@redhat.com>
* tracepoint.c (memrange_absolute): New enum constant.
(struct memrange, memrange_cmp, add_memrange, collect_symbol,
stringify_collection_list, encode_actions): Use it instead of '-1'
to indicate an fixed-address memory range.
(Suggested by Eli Zaretskii.)
gdb/ChangeLog:
2005-11-19 Jim Blandy <jimb@redhat.com>
* tracepoint.c (memrange_absolute): New enum constant.
(struct memrange, memrange_cmp, add_memrange, collect_symbol,
stringify_collection_list, encode_actions): Use it instead of '-1'
to indicate an fixed-address memory range.
(Suggested by Eli Zaretskii.)
Index: gdb/tracepoint.c
===================================================================
RCS file: /cvs/src/src/gdb/tracepoint.c,v
retrieving revision 1.81
diff -c -p -r1.81 tracepoint.c
*** gdb/tracepoint.c 19 Nov 2005 18:57:28 -0000 1.81
--- gdb/tracepoint.c 19 Nov 2005 19:13:29 -0000
*************** make_cleanup_free_actions (struct tracep
*** 1069,1077 ****
return make_cleanup (do_free_actions_cleanup, t);
}
struct memrange
{
! int type; /* -1 for absolute memory range, else basereg number */
bfd_signed_vma start;
bfd_signed_vma end;
};
--- 1069,1082 ----
return make_cleanup (do_free_actions_cleanup, t);
}
+ enum {
+ memrange_absolute = -1
+ };
+
struct memrange
{
! int type; /* memrange_absolute for absolute memory range,
! else basereg number */
bfd_signed_vma start;
bfd_signed_vma end;
};
*************** memrange_cmp (const void *va, const void
*** 1103,1109 ****
return -1;
if (a->type > b->type)
return 1;
! if (a->type == 0)
{
if ((bfd_vma) a->start < (bfd_vma) b->start)
return -1;
--- 1108,1114 ----
return -1;
if (a->type > b->type)
return 1;
! if (a->type == memrange_absolute)
{
if ((bfd_vma) a->start < (bfd_vma) b->start)
return -1;
*************** add_memrange (struct collection_list *me
*** 1175,1181 ****
printf_filtered (",%ld)\n", len);
}
! /* type: -1 == memory, n == basereg */
memranges->list[memranges->next_memrange].type = type;
/* base: addr if memory, offset if reg relative. */
memranges->list[memranges->next_memrange].start = base;
--- 1180,1186 ----
printf_filtered (",%ld)\n", len);
}
! /* type: memrange_absolute == memory, other n == basereg */
memranges->list[memranges->next_memrange].type = type;
/* base: addr if memory, offset if reg relative. */
memranges->list[memranges->next_memrange].start = base;
*************** add_memrange (struct collection_list *me
*** 1189,1195 ****
memranges->listsize);
}
! if (type != -1) /* Better collect the base register! */
add_register (memranges, type);
}
--- 1194,1200 ----
memranges->listsize);
}
! if (type != memrange_absolute) /* Better collect the base register! */
add_register (memranges, type);
}
*************** collect_symbol (struct collection_list *
*** 1226,1232 ****
DEPRECATED_SYMBOL_NAME (sym), len,
tmp /* address */);
}
! add_memrange (collect, -1, offset, len); /* -1 == memory */
break;
case LOC_REGISTER:
case LOC_REGPARM:
--- 1231,1237 ----
DEPRECATED_SYMBOL_NAME (sym), len,
tmp /* address */);
}
! add_memrange (collect, memrange_absolute, offset, len);
break;
case LOC_REGISTER:
case LOC_REGPARM:
*************** stringify_collection_list (struct collec
*** 1441,1449 ****
bfd_signed_vma length = list->list[i].end - list->list[i].start;
/* The "%X" conversion specifier expects an unsigned argument,
! so passing -1 to it directly gives you "FFFFFFFF" (or more,
! depending on sizeof (unsigned)). Special-case it. */
! if (list->list[i].type == -1)
sprintf (end, "M-1,%s,%lX", tmp2, (long) length);
else
sprintf (end, "M%X,%s,%lX", list->list[i].type, tmp2, (long) length);
--- 1446,1455 ----
bfd_signed_vma length = list->list[i].end - list->list[i].start;
/* The "%X" conversion specifier expects an unsigned argument,
! so passing -1 (memrange_absolute) to it directly gives you
! "FFFFFFFF" (or more, depending on sizeof (unsigned)).
! Special-case it. */
! if (list->list[i].type == memrange_absolute)
sprintf (end, "M-1,%s,%lX", tmp2, (long) length);
else
sprintf (end, "M%X,%s,%lX", list->list[i].type, tmp2, (long) length);
*************** encode_actions (struct tracepoint *t, ch
*** 1605,1611 ****
tempval = evaluate_expression (exp);
addr = VALUE_ADDRESS (tempval) + value_offset (tempval);
len = TYPE_LENGTH (check_typedef (exp->elts[1].type));
! add_memrange (collect, -1, addr, len);
break;
case OP_VAR_VALUE:
--- 1611,1617 ----
tempval = evaluate_expression (exp);
addr = VALUE_ADDRESS (tempval) + value_offset (tempval);
len = TYPE_LENGTH (check_typedef (exp->elts[1].type));
! add_memrange (collect, memrange_absolute, addr, len);
break;
case OP_VAR_VALUE: