mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-03 23:34:02 +08:00
gdb/
Fix implicit pointer offsets. * dwarf2loc.c (indirect_pieced_value): Comment byte_offset. Use also ptr.OFFSET. gdb/testsuite/ Fix implicit pointer offsets. * gdb.dwarf2/implptr.c (add): New marker baz breakpoint. * gdb.dwarf2/implptr.exp (set baz breakpoint for implptr) (continue to breakpoint: continue to baz breakpoint for implptr) (sanity check element 0, sanity check element 1) (enter the inlined function, check element 0 for the offset) (check element 1 for the offset) (continue to breakpoint: ignore the second baz breakpoint): New tests. (set foo breakpoint for implptr): Update the breakpoint number.
This commit is contained in:
parent
c0a91b2b14
commit
543305c9cd
@ -1,3 +1,9 @@
|
||||
2011-07-25 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Fix implicit pointer offsets.
|
||||
* dwarf2loc.c (indirect_pieced_value): Comment byte_offset. Use also
|
||||
ptr.OFFSET.
|
||||
|
||||
2011-07-25 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* ada-lang.c (ada_exception_breakpoint_ops): Make return type
|
||||
|
@ -1012,6 +1012,8 @@ indirect_pieced_value (struct value *value)
|
||||
}
|
||||
|
||||
frame = get_selected_frame (_("No frame selected."));
|
||||
|
||||
/* This is an offset requested by GDB, such as value subcripts. */
|
||||
byte_offset = value_as_address (value);
|
||||
|
||||
gdb_assert (piece);
|
||||
@ -1023,7 +1025,7 @@ indirect_pieced_value (struct value *value)
|
||||
|
||||
result = dwarf2_evaluate_loc_desc_full (TYPE_TARGET_TYPE (type), frame,
|
||||
baton.data, baton.size, baton.per_cu,
|
||||
byte_offset);
|
||||
piece->v.ptr.offset + byte_offset);
|
||||
|
||||
do_cleanups (back_to);
|
||||
|
||||
|
@ -1,3 +1,15 @@
|
||||
2011-07-25 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Fix implicit pointer offsets.
|
||||
* gdb.dwarf2/implptr.c (add): New marker baz breakpoint.
|
||||
* gdb.dwarf2/implptr.exp (set baz breakpoint for implptr)
|
||||
(continue to breakpoint: continue to baz breakpoint for implptr)
|
||||
(sanity check element 0, sanity check element 1)
|
||||
(enter the inlined function, check element 0 for the offset)
|
||||
(check element 1 for the offset)
|
||||
(continue to breakpoint: ignore the second baz breakpoint): New tests.
|
||||
(set foo breakpoint for implptr): Update the breakpoint number.
|
||||
|
||||
2011-07-22 Ulrich Weigand <ulrich.weigand@linaro.org>
|
||||
|
||||
* gdb.python/py-mi.exp: Use different file names for different
|
||||
|
@ -31,7 +31,7 @@ int u[6];
|
||||
static inline void
|
||||
add (struct S *a, struct S *b, int c)
|
||||
{
|
||||
*a->x += *b->x;
|
||||
*a->x += *b->x; /* baz breakpoint */
|
||||
a->y += b->y;
|
||||
u[c + 0]++;
|
||||
a = (struct S *) 0;
|
||||
|
@ -60,11 +60,26 @@ proc implptr_test_bar {} {
|
||||
gdb_test "print ***l" " = 5" "print ***l in implptr:bar"
|
||||
}
|
||||
|
||||
# Test implicit pointer offset.
|
||||
proc implptr_test_baz {} {
|
||||
global csrcfile
|
||||
set line [gdb_get_line_number "baz breakpoint" $csrcfile]
|
||||
gdb_test "break implptr.c:$line" "Breakpoint 3.*" \
|
||||
"set baz breakpoint for implptr"
|
||||
gdb_continue_to_breakpoint "continue to baz breakpoint for implptr"
|
||||
gdb_test {p p[0].y} " = 92" "sanity check element 0"
|
||||
gdb_test {p p[1].y} " = 46" "sanity check element 1"
|
||||
gdb_test "step" "\r\nadd \\(.*" "enter the inlined function"
|
||||
gdb_test "p a->y" " = 92" "check element 0 for the offset"
|
||||
gdb_test "p b->y" " = 46" "check element 1 for the offset"
|
||||
gdb_continue_to_breakpoint "ignore the second baz breakpoint"
|
||||
}
|
||||
|
||||
# Test some values in foo.
|
||||
proc implptr_test_foo {} {
|
||||
global csrcfile
|
||||
set line [gdb_get_line_number "foo breakpoint" $csrcfile]
|
||||
gdb_test "break implptr.c:$line" "Breakpoint 3.*" \
|
||||
gdb_test "break implptr.c:$line" "Breakpoint 4.*" \
|
||||
"set foo breakpoint for implptr"
|
||||
gdb_continue_to_breakpoint "continue to foo breakpoint for implptr"
|
||||
gdb_test "print p\[0].x" " = \\(int \\*\\) <synthetic pointer>" \
|
||||
@ -81,4 +96,5 @@ proc implptr_test_foo {} {
|
||||
}
|
||||
|
||||
implptr_test_bar
|
||||
implptr_test_baz
|
||||
implptr_test_foo
|
||||
|
Loading…
Reference in New Issue
Block a user