Discussion:
Building GDB with PyPy?
(too old to reply)
Yichun Zhang (agentzh)
2014-08-06 00:46:16 UTC
Permalink
Raw Message
Hi folks!

Sorry if this is a dumb question.

I've been using the Python extension in gdb but the speed of the
Python code is very disappointing for large working set. I wonder if
it is possible to build gdb from source with pypy instead of the
cpython?

Using ./configure --with-python=`which pypy` fails for me with the
following error:

checking whether to use python... /bin/pypy
Traceback (most recent call last):
File "app_main.py", line 72, in run_toplevel
File "./python/python-config.py", line 66, in <module>
libs.append('-lpython'+pyver + abiflags)
TypeError: unsupported operand type(s) for +: 'str' and 'NoneType'
configure: error: failure running python-config --ldflags
make[1]: *** [configure-gdb] Error 1
make[1]: Leaving directory `/home/agentzh/Downloads/gdb-7.8'
make: *** [all] Error 2

Any pointers for solving this will be highly appreciated!

Hopefully PyPy can speed up my Python code running in gdb a lot. Just
want to give it a shot.

Thanks!
-agentzh
Pedro Alves
2014-08-19 14:22:44 UTC
Permalink
Raw Message
On 08/06/2014 01:46 AM, Yichun Zhang (agentzh) wrote:
> Hi folks!
>
> Sorry if this is a dumb question.
>
> I've been using the Python extension in gdb but the speed of the
> Python code is very disappointing for large working set. I wonder if
> it is possible to build gdb from source with pypy instead of the
> cpython?

I have no idea if anyone ever done that, but if you succeed, don't
forget to let us know about it! :-)

>
> Using ./configure --with-python=`which pypy` fails for me with the
> following error:
>
> checking whether to use python... /bin/pypy
> Traceback (most recent call last):
> File "app_main.py", line 72, in run_toplevel
> File "./python/python-config.py", line 66, in <module>
> libs.append('-lpython'+pyver + abiflags)
> TypeError: unsupported operand type(s) for +: 'str' and 'NoneType'
> configure: error: failure running python-config --ldflags
> make[1]: *** [configure-gdb] Error 1
> make[1]: Leaving directory `/home/agentzh/Downloads/gdb-7.8'
> make: *** [all] Error 2
>
> Any pointers for solving this will be highly appreciated!
>
> Hopefully PyPy can speed up my Python code running in gdb a lot. Just
> want to give it a shot.

--
Thanks,
Pedro Alves
Simon Marchi
2014-08-19 15:48:27 UTC
Permalink
Raw Message
So,

pyver = sysconfig.get_config_var('VERSION')

seems undefined (results in None) for PyPy. I replaced it with

pyver = sysconfig.get_config_var('VERSION') or
sysconfig.get_python_version()

as found in another project, and it seemed to go further. However, the
C api used by GDB seems specific to cpython. There are a lot of
functions not found in PyPy, such as Py_Initialize. I did not go any
further, it doesn't seem like a trivial task to make GDB work with
PyPy.

Here is an exceprt from compilation: http://pastebin.com/SJxdC00i

Simon

On 19 August 2014 10:22, Pedro Alves <***@redhat.com> wrote:
> On 08/06/2014 01:46 AM, Yichun Zhang (agentzh) wrote:
>> Hi folks!
>>
>> Sorry if this is a dumb question.
>>
>> I've been using the Python extension in gdb but the speed of the
>> Python code is very disappointing for large working set. I wonder if
>> it is possible to build gdb from source with pypy instead of the
>> cpython?
>
> I have no idea if anyone ever done that, but if you succeed, don't
> forget to let us know about it! :-)
>
>>
>> Using ./configure --with-python=`which pypy` fails for me with the
>> following error:
>>
>> checking whether to use python... /bin/pypy
>> Traceback (most recent call last):
>> File "app_main.py", line 72, in run_toplevel
>> File "./python/python-config.py", line 66, in <module>
>> libs.append('-lpython'+pyver + abiflags)
>> TypeError: unsupported operand type(s) for +: 'str' and 'NoneType'
>> configure: error: failure running python-config --ldflags
>> make[1]: *** [configure-gdb] Error 1
>> make[1]: Leaving directory `/home/agentzh/Downloads/gdb-7.8'
>> make: *** [all] Error 2
>>
>> Any pointers for solving this will be highly appreciated!
>>
>> Hopefully PyPy can speed up my Python code running in gdb a lot. Just
>> want to give it a shot.
>
> --
> Thanks,
> Pedro Alves
>
Loading...