mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2025-02-26 12:25:31 +00:00
ChangeLog:
* ppc-linux-tdep.c (ppu2spu_prev_register): Handle pseudo registers. (ppu2spu_unwind_register): Mark pseudo registers unavailable. * spu-tdep.c (op_selb): Use correct value. testsuite/ChangeLog: * gdb.cell/bt.exp: Delete breakpoints before running to signal to avoid race condition. * gdb.cell/coremaker.c: Use small stack size. * gdb.cell/ea-standalone.exp: Use file name without path as argument to c_to. * gdb.cell/fork.exp: Allow other output when continuing to end.
This commit is contained in:
parent
7845b0133d
commit
a536c6d7e6
@ -1,3 +1,9 @@
|
|||||||
|
2011-05-06 Ulrich Weigand <uweigand@de.ibm.com>
|
||||||
|
|
||||||
|
* ppc-linux-tdep.c (ppu2spu_prev_register): Handle pseudo registers.
|
||||||
|
(ppu2spu_unwind_register): Mark pseudo registers unavailable.
|
||||||
|
* spu-tdep.c (op_selb): Use correct value.
|
||||||
|
|
||||||
2011-05-06 Ulrich Weigand <uweigand@de.ibm.com>
|
2011-05-06 Ulrich Weigand <uweigand@de.ibm.com>
|
||||||
|
|
||||||
* spu-linux-nat.c (spu_symbol_file_add_from_memory): Add NULL
|
* spu-linux-nat.c (spu_symbol_file_add_from_memory): Add NULL
|
||||||
|
@ -1367,7 +1367,12 @@ ppu2spu_prev_register (struct frame_info *this_frame,
|
|||||||
gdb_byte *buf;
|
gdb_byte *buf;
|
||||||
|
|
||||||
buf = alloca (register_size (gdbarch, regnum));
|
buf = alloca (register_size (gdbarch, regnum));
|
||||||
regcache_cooked_read (cache->regcache, regnum, buf);
|
|
||||||
|
if (regnum < gdbarch_num_regs (gdbarch))
|
||||||
|
regcache_raw_read (cache->regcache, regnum, buf);
|
||||||
|
else
|
||||||
|
gdbarch_pseudo_register_read (gdbarch, cache->regcache, regnum, buf);
|
||||||
|
|
||||||
return frame_unwind_got_bytes (this_frame, regnum, buf);
|
return frame_unwind_got_bytes (this_frame, regnum, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1392,9 +1397,9 @@ ppu2spu_unwind_register (void *src, int regnum, gdb_byte *buf)
|
|||||||
else if (regnum == SPU_PC_REGNUM)
|
else if (regnum == SPU_PC_REGNUM)
|
||||||
store_unsigned_integer (buf, 4, byte_order, data->npc);
|
store_unsigned_integer (buf, 4, byte_order, data->npc);
|
||||||
else
|
else
|
||||||
return 0;
|
return REG_UNAVAILABLE;
|
||||||
|
|
||||||
return 1;
|
return REG_VALID;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -456,7 +456,7 @@ enum
|
|||||||
op_a = 0x0c0,
|
op_a = 0x0c0,
|
||||||
op_ai = 0x1c,
|
op_ai = 0x1c,
|
||||||
|
|
||||||
op_selb = 0x4,
|
op_selb = 0x8,
|
||||||
|
|
||||||
op_br = 0x64,
|
op_br = 0x64,
|
||||||
op_bra = 0x60,
|
op_bra = 0x60,
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
2011-05-06 Ulrich Weigand <uweigand@de.ibm.com>
|
||||||
|
|
||||||
|
* gdb.cell/bt.exp: Delete breakpoints before running to signal
|
||||||
|
to avoid race condition.
|
||||||
|
* gdb.cell/coremaker.c: Use small stack size.
|
||||||
|
* gdb.cell/ea-standalone.exp: Use file name without path as
|
||||||
|
argument to c_to.
|
||||||
|
* gdb.cell/fork.exp: Allow other output when continuing to end.
|
||||||
|
|
||||||
2011-05-06 Jan Kratochvil <jan.kratochvil@redhat.com>
|
2011-05-06 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||||
|
|
||||||
* gdb.threads/corethreads.c: New file.
|
* gdb.threads/corethreads.c: New file.
|
||||||
|
@ -72,6 +72,7 @@ if ![runto_main] then {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete_breakpoints
|
||||||
gdb_test "continue" ".*Program received signal SIGABRT, Aborted.*"
|
gdb_test "continue" ".*Program received signal SIGABRT, Aborted.*"
|
||||||
|
|
||||||
gdb_test "backtrace" ".*abort.*crash_handler.*base.*offset.*<cross-architecture call>.*main.*speid.*argp.*envp.*at.*$spu2_file.c.*<cross-architecture call>.*spe_context_run.*indirect_handler.*base.*offset.*<cross-architecture call>.*main.*speid.*argp.*envp.*at.*$spu_file.c.*<cross-architecture call>.*spe_context_run.*spe_thread.*at.*$ppu_file.c.*"
|
gdb_test "backtrace" ".*abort.*crash_handler.*base.*offset.*<cross-architecture call>.*main.*speid.*argp.*envp.*at.*$spu2_file.c.*<cross-architecture call>.*spe_context_run.*indirect_handler.*base.*offset.*<cross-architecture call>.*main.*speid.*argp.*envp.*at.*$spu_file.c.*<cross-architecture call>.*spe_context_run.*spe_thread.*at.*$ppu_file.c.*"
|
||||||
|
@ -43,18 +43,25 @@ int
|
|||||||
main (void)
|
main (void)
|
||||||
{
|
{
|
||||||
int thread_id[nr_t];
|
int thread_id[nr_t];
|
||||||
|
pthread_attr_t attr;
|
||||||
pthread_t pts[nr_t];
|
pthread_t pts[nr_t];
|
||||||
spe_context_ptr_t ctx[nr_t];
|
spe_context_ptr_t ctx[nr_t];
|
||||||
unsigned int value;
|
unsigned int value;
|
||||||
int cnt;
|
int cnt;
|
||||||
|
|
||||||
|
/* Use small thread stacks to speed up writing out core file. */
|
||||||
|
pthread_attr_init (&attr);
|
||||||
|
pthread_attr_setstacksize (&attr, 2*PTHREAD_STACK_MIN);
|
||||||
|
|
||||||
for (cnt = 0; cnt < nr_t; cnt++)
|
for (cnt = 0; cnt < nr_t; cnt++)
|
||||||
{
|
{
|
||||||
ctx[cnt] = spe_context_create (0, NULL);
|
ctx[cnt] = spe_context_create (0, NULL);
|
||||||
thread_id[cnt]
|
thread_id[cnt]
|
||||||
= pthread_create (&pts[cnt], NULL, &spe_thread, &ctx[cnt]);
|
= pthread_create (&pts[cnt], &attr, &spe_thread, &ctx[cnt]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pthread_attr_destroy (&attr);
|
||||||
|
|
||||||
for (cnt = 0; cnt < nr_t; cnt++)
|
for (cnt = 0; cnt < nr_t; cnt++)
|
||||||
spe_out_intr_mbox_read (ctx[cnt], &value, 1, SPE_MBOX_ALL_BLOCKING);
|
spe_out_intr_mbox_read (ctx[cnt], &value, 1, SPE_MBOX_ALL_BLOCKING);
|
||||||
|
|
||||||
|
@ -44,12 +44,12 @@ if ![runto_main] then {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
c_to "Marker SPUEA1" $srcfile
|
c_to "Marker SPUEA1" $testfile.c
|
||||||
gdb_test "p myarray\[0\]" \
|
gdb_test "p myarray\[0\]" \
|
||||||
".*= 0" \
|
".*= 0" \
|
||||||
"p myarray\[0\]"
|
"p myarray\[0\]"
|
||||||
|
|
||||||
c_to "Marker SPUEA2" $srcfile
|
c_to "Marker SPUEA2" $testfile.c
|
||||||
gdb_test "p myarray\[0\]" \
|
gdb_test "p myarray\[0\]" \
|
||||||
".*= 1" \
|
".*= 1" \
|
||||||
"p myarray\[0\]"
|
"p myarray\[0\]"
|
||||||
|
@ -77,7 +77,7 @@ gdb_test_no_output "delete \$bpnum" "delete watchpoint"
|
|||||||
gdb_test "continue" "Continuing\\..*Breakpoint \[0-9\]+, func \\(\\) at .*$spu_file.c:.*" \
|
gdb_test "continue" "Continuing\\..*Breakpoint \[0-9\]+, func \\(\\) at .*$spu_file.c:.*" \
|
||||||
"run until breakpoint hit"
|
"run until breakpoint hit"
|
||||||
|
|
||||||
gdb_continue_to_end
|
gdb_continue_to_end "" continue 1
|
||||||
|
|
||||||
gdb_exit
|
gdb_exit
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user