|
From: Nuno L. <nun...@sa...> - 2008-05-04 12:36:20
|
> This strikes me as much safer:
>
> if (0) {
> husa = (nframes >= 1 ? sps[nframes - 1] : VG_(get_SP)(vg_tid));
> } else {
> UInt i;
> tl_assert(nframes >= 1 && nframes <= n_ips);
> husa = sps[0];
> for (i = 1; i < nframes; i++) {
> if (sps[i] == 0) break;
> if (sps[i] > husa) husa = sps[i];
> }
> }
>
> This produces husa = 0xFEA04940, the assertion does not fail, and drd
> does not go into outer space. (It was taking about 1GB just to run
> /bin/ls before this).
>
> Nuno, can you try that?
That worked, yes!
Now I just get the following:
$ cat exp-drd/tests/fp_race.stderr.diff
1a2,8
>
> WARNING: DRD has only been tested on x86-linux and amd64-linux.
>
> get_Dwarf_Reg(ppc64-linux)(31)
> get_Dwarf_Reg(ppc64-linux)(31)
> get_Dwarf_Reg(ppc64-linux)(31)
> get_Dwarf_Reg(ppc64-linux)(31)
10a18,21
> get_Dwarf_Reg(ppc64-linux)(31)
> get_Dwarf_Reg(ppc64-linux)(31)
> get_Dwarf_Reg(ppc64-linux)(31)
> get_Dwarf_Reg(ppc64-linux)(31)
Otherwise tests seem to be working. Now I'm rebuilding the latest SVN trunk
after Bart's changes to check if it works as well.
Nuno
|