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:
Ulrich Weigand 2011-05-06 20:48:48 +00:00
parent 7845b0133d
commit a536c6d7e6
8 changed files with 36 additions and 8 deletions

View File

@ -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>
* spu-linux-nat.c (spu_symbol_file_add_from_memory): Add NULL

View File

@ -1367,7 +1367,12 @@ ppu2spu_prev_register (struct frame_info *this_frame,
gdb_byte *buf;
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);
}
@ -1392,9 +1397,9 @@ ppu2spu_unwind_register (void *src, int regnum, gdb_byte *buf)
else if (regnum == SPU_PC_REGNUM)
store_unsigned_integer (buf, 4, byte_order, data->npc);
else
return 0;
return REG_UNAVAILABLE;
return 1;
return REG_VALID;
}
static int

View File

@ -456,7 +456,7 @@ enum
op_a = 0x0c0,
op_ai = 0x1c,
op_selb = 0x4,
op_selb = 0x8,
op_br = 0x64,
op_bra = 0x60,

View File

@ -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>
* gdb.threads/corethreads.c: New file.

View File

@ -72,6 +72,7 @@ if ![runto_main] then {
return 0
}
delete_breakpoints
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.*"

View File

@ -43,18 +43,25 @@ int
main (void)
{
int thread_id[nr_t];
pthread_attr_t attr;
pthread_t pts[nr_t];
spe_context_ptr_t ctx[nr_t];
unsigned int value;
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++)
{
ctx[cnt] = spe_context_create (0, NULL);
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++)
spe_out_intr_mbox_read (ctx[cnt], &value, 1, SPE_MBOX_ALL_BLOCKING);

View File

@ -44,12 +44,12 @@ if ![runto_main] then {
return 0
}
c_to "Marker SPUEA1" $srcfile
c_to "Marker SPUEA1" $testfile.c
gdb_test "p myarray\[0\]" \
".*= 0" \
"p myarray\[0\]"
c_to "Marker SPUEA2" $srcfile
c_to "Marker SPUEA2" $testfile.c
gdb_test "p myarray\[0\]" \
".*= 1" \
"p myarray\[0\]"

View File

@ -77,7 +77,7 @@ gdb_test_no_output "delete \$bpnum" "delete watchpoint"
gdb_test "continue" "Continuing\\..*Breakpoint \[0-9\]+, func \\(\\) at .*$spu_file.c:.*" \
"run until breakpoint hit"
gdb_continue_to_end
gdb_continue_to_end "" continue 1
gdb_exit