[Stackless] Stackless 2.5 branch updated for Python 2.5.1c1
Hieu Hoang
hieu.d.hoang at gmail.com
Sun Apr 15 18:26:56 CEST 2007
On 4/16/07, Hieu Hoang <hieu.d.hoang at gmail.com> wrote:
> Reading the switch_x64_masm.asm and switch_amd64_unix.h doesn't give
> me any idea which registers to save. I added rdi rsi, in that order,
> to REGS_TO_SAVE. Doesn't look better to me:
>
Now I add rbx rdi rsi, it looks different:
r64y at babol [02:21]:~/stackless-gcc-4/Stackless/unittests
$> ../../python runAll.py
.......E.........E....Segmentation fault (core dumped)
r64y at babol [02:22]:~/stackless-gcc-4/Stackless/unittests
$> gdb --args ../../python runAll.py
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu"...
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) run
Starting program: /home/r64y/stackless-gcc-4/python runAll.py
[Thread debugging using libthread_db enabled]
[New Thread 46945544423152 (LWP 1483)]
.......E.........E....F.F.........
======================================================================
ERROR: Same as 1, but with a pickled unrun tasklet.
----------------------------------------------------------------------
Traceback (most recent call last):
File "./test_miscell.py", line 62, in test_aliveness2
self.lifecycle(t_new)
File "./test_miscell.py", line 31, in lifecycle
res = stackless.run(10)
RuntimeError: cannot execute invalid frame with 'run_cframe': frame
had a C state that can't be restored.
======================================================================
ERROR: testGeneratorScheduling (test_pickle.TestConcretePickledTasklets)
----------------------------------------------------------------------
Traceback (most recent call last):
File "./test_pickle.py", line 228, in testGeneratorScheduling
self.run_pickled(genschedoutertest, 20, 13)
File "./test_pickle.py", line 156, in run_pickled
ip.run()
File "./test_pickle.py", line 17, in accumulate
rval = (ident, func(*args))
File "./test_pickle.py", line 103, in genschedoutertest
for x in genschedinnertest(n, when):
RuntimeError: cannot execute invalid frame with
'gen_iternext_callback': frame had a C state that can't be restored.
======================================================================
FAIL: testSet (test_pickle.TestConcretePickledTasklets)
----------------------------------------------------------------------
Traceback (most recent call last):
File "./test_pickle.py", line 218, in testSet
self.run_pickled(settest, 20, 13)
File "./test_pickle.py", line 164, in run_pickled
self.assertEquals(new_rval, old_rval)
AssertionError: 13 != 19
======================================================================
FAIL: testXrange (test_pickle.TestConcretePickledTasklets)
----------------------------------------------------------------------
Traceback (most recent call last):
File "./test_pickle.py", line 197, in testXrange
self.run_pickled(xrangetest, 20, 13)
File "./test_pickle.py", line 164, in run_pickled
self.assertEquals(new_rval, old_rval)
AssertionError: -352583151047933933 != 19
----------------------------------------------------------------------
Ran 34 tests in 2.121s
FAILED (failures=2, errors=2)
.......EF.........................
======================================================================
ERROR: Same as 1, but with a pickled unrun tasklet.
----------------------------------------------------------------------
Traceback (most recent call last):
File "./test_miscell.py", line 62, in test_aliveness2
self.lifecycle(t_new)
File "./test_miscell.py", line 31, in lifecycle
res = stackless.run(10)
RuntimeError: cannot execute invalid frame with 'run_cframe': frame
had a C state that can't be restored.
======================================================================
FAIL: Same as 1, but with a pickled run(slightly) tasklet.
----------------------------------------------------------------------
Traceback (most recent call last):
File "./test_miscell.py", line 107, in test_aliveness3
self.assertEquals(t.recursion_depth, 0)
AssertionError: -1 != 0
----------------------------------------------------------------------
Ran 34 tests in 2.065s
FAILED (failures=1, errors=1)
Program exited normally.
(gdb)
How can I get at what made it segfault?
And, everytime I change switch_amd64_unix.h, I only have to remove the
slp_transfer.o file and run make again, or should I make distclean?
Hieu
_______________________________________________
Stackless mailing list
Stackless at stackless.com
http://www.stackless.com/mailman/listinfo/stackless
More information about the Stackless
mailing list