2010-10-20 Hui Zhu <teawater@gmail.com>
* tracepoint.c (tfile_get_traceframe_address): Call extract_signed_integer. (tfile_trace_find): Call extract_signed_integer and extract_unsigned_integer. Change data_size to unsigned int. (tfile_fetch_registers): Call extract_unsigned_integer. (tfile_xfer_partial): Ditto. (tfile_get_trace_state_variable_value): Call extract_signed_integer and extract_unsigned_integer.
This commit is contained in:
parent
21bce12043
commit
8991e9fa24
|
@ -1,3 +1,14 @@
|
|||
2010-10-20 Hui Zhu <teawater@gmail.com>
|
||||
|
||||
* tracepoint.c (tfile_get_traceframe_address): Call
|
||||
extract_signed_integer.
|
||||
(tfile_trace_find): Call extract_signed_integer and
|
||||
extract_unsigned_integer. Change data_size to unsigned int.
|
||||
(tfile_fetch_registers): Call extract_unsigned_integer.
|
||||
(tfile_xfer_partial): Ditto.
|
||||
(tfile_get_trace_state_variable_value): Call
|
||||
extract_signed_integer and extract_unsigned_integer.
|
||||
|
||||
2010-10-20 Vladimir Prus <vladimir@codesourcery.com>
|
||||
|
||||
* remote.c (remote_get_threadlist): If we got empty
|
||||
|
|
|
@ -3665,6 +3665,9 @@ tfile_get_traceframe_address (off_t tframe_offset)
|
|||
perror_with_name (trace_filename);
|
||||
else if (gotten < 2)
|
||||
error (_("Premature end of file while reading trace file"));
|
||||
tpnum = (short) extract_signed_integer ((gdb_byte *) &tpnum, 2,
|
||||
gdbarch_byte_order
|
||||
(target_gdbarch));
|
||||
|
||||
tp = get_tracepoint_by_number_on_target (tpnum);
|
||||
/* FIXME this is a poor heuristic if multiple locations */
|
||||
|
@ -3688,7 +3691,7 @@ tfile_trace_find (enum trace_find_type type, int num,
|
|||
{
|
||||
short tpnum;
|
||||
int tfnum = 0, found = 0, gotten;
|
||||
int data_size;
|
||||
unsigned int data_size;
|
||||
struct breakpoint *tp;
|
||||
off_t offset, tframe_offset;
|
||||
ULONGEST tfaddr;
|
||||
|
@ -3703,6 +3706,9 @@ tfile_trace_find (enum trace_find_type type, int num,
|
|||
perror_with_name (trace_filename);
|
||||
else if (gotten < 2)
|
||||
error (_("Premature end of file while reading trace file"));
|
||||
tpnum = (short) extract_signed_integer ((gdb_byte *) &tpnum, 2,
|
||||
gdbarch_byte_order
|
||||
(target_gdbarch));
|
||||
offset += 2;
|
||||
if (tpnum == 0)
|
||||
break;
|
||||
|
@ -3711,6 +3717,9 @@ tfile_trace_find (enum trace_find_type type, int num,
|
|||
perror_with_name (trace_filename);
|
||||
else if (gotten < 4)
|
||||
error (_("Premature end of file while reading trace file"));
|
||||
data_size = (unsigned int) extract_unsigned_integer
|
||||
((gdb_byte *) &data_size, 4,
|
||||
gdbarch_byte_order (target_gdbarch));
|
||||
offset += 4;
|
||||
switch (type)
|
||||
{
|
||||
|
@ -3832,6 +3841,10 @@ tfile_fetch_registers (struct target_ops *ops,
|
|||
perror_with_name (trace_filename);
|
||||
else if (gotten < 2)
|
||||
error (_("Premature end of file while reading trace file"));
|
||||
mlen = (unsigned short)
|
||||
extract_unsigned_integer ((gdb_byte *) &mlen, 2,
|
||||
gdbarch_byte_order
|
||||
(target_gdbarch));
|
||||
lseek (trace_fd, mlen, SEEK_CUR);
|
||||
pos += (8 + 2 + mlen);
|
||||
break;
|
||||
|
@ -3924,12 +3937,18 @@ tfile_xfer_partial (struct target_ops *ops, enum target_object object,
|
|||
perror_with_name (trace_filename);
|
||||
else if (gotten < 8)
|
||||
error (_("Premature end of file while reading trace file"));
|
||||
|
||||
maddr = extract_unsigned_integer ((gdb_byte *) &maddr, 8,
|
||||
gdbarch_byte_order
|
||||
(target_gdbarch));
|
||||
gotten = read (trace_fd, &mlen, 2);
|
||||
if (gotten < 0)
|
||||
perror_with_name (trace_filename);
|
||||
else if (gotten < 2)
|
||||
error (_("Premature end of file while reading trace file"));
|
||||
mlen = (unsigned short)
|
||||
extract_unsigned_integer ((gdb_byte *) &mlen, 2,
|
||||
gdbarch_byte_order
|
||||
(target_gdbarch));
|
||||
/* If the block includes the first part of the desired
|
||||
range, return as much it has; GDB will re-request the
|
||||
remainder, which might be in a different block of this
|
||||
|
@ -4032,6 +4051,10 @@ tfile_get_trace_state_variable_value (int tsvnum, LONGEST *val)
|
|||
perror_with_name (trace_filename);
|
||||
else if (gotten < 2)
|
||||
error (_("Premature end of file while reading trace file"));
|
||||
mlen = (unsigned short)
|
||||
extract_unsigned_integer ((gdb_byte *) &mlen, 2,
|
||||
gdbarch_byte_order
|
||||
(target_gdbarch));
|
||||
lseek (trace_fd, mlen, SEEK_CUR);
|
||||
pos += (8 + 2 + mlen);
|
||||
break;
|
||||
|
@ -4041,6 +4064,9 @@ tfile_get_trace_state_variable_value (int tsvnum, LONGEST *val)
|
|||
perror_with_name (trace_filename);
|
||||
else if (gotten < 4)
|
||||
error (_("Premature end of file while reading trace file"));
|
||||
vnum = (int) extract_signed_integer ((gdb_byte *) &vnum, 4,
|
||||
gdbarch_byte_order
|
||||
(target_gdbarch));
|
||||
if (tsvnum == vnum)
|
||||
{
|
||||
gotten = read (trace_fd, val, 8);
|
||||
|
@ -4048,6 +4074,9 @@ tfile_get_trace_state_variable_value (int tsvnum, LONGEST *val)
|
|||
perror_with_name (trace_filename);
|
||||
else if (gotten < 8)
|
||||
error (_("Premature end of file while reading trace file"));
|
||||
*val = extract_signed_integer ((gdb_byte *)val, 8,
|
||||
gdbarch_byte_order
|
||||
(target_gdbarch));
|
||||
return 1;
|
||||
}
|
||||
lseek (trace_fd, 8, SEEK_CUR);
|
||||
|
|
Loading…
Reference in New Issue