<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
</head>
<body>
<br>
<br>
Chema Cortés wrote:<br>
<blockquote type="cite" cite="mid200310181745.57441.py@ch3m4.org">
<pre wrap="">-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
El Viernes, 17 de Octubre de 2003 20:02, Maurizio Panniello escribió:
Todavía no me he metido a fondo con las extensiones en C, pero en...
</pre>
<blockquote type="cite">
<pre wrap="">int fun_f (const gsl_vector* par,void *self, gsl_vector* f) {
PyObject *tpar=PyTuple_New(par->size);
PyObject *resid, *lob;
PyArrayObject *aresid;
size_t i;
//Generamos una lista con los parametros:
for (i=0; i<par->size; i++)
PyTuple_SetItem(tpar, i , Py_BuildValue("d",par->data[i]) );
//Llamamos al metodo _F(params):
printf("?1");
lob=PyObject_CallMethod((PyObject*)self, "_FF", "(O)", tpar);
</pre>
</blockquote>
<pre wrap=""><!---->
¿por qué construyes una nueva tupla a partir de tpar? ¿no bastaría con poner
"O" como cadena de formato?</pre>
</blockquote>
No, no vale, lo descubrí en el manual, CallMethod siempre quiere una tupla,
incluso si llamas a una<br>
función sin argumentos tienes que poner un formato "()" para que genere una
tupla vacias:<br>
<a class="moz-txt-link-freetext" href="http://www.python.org/doc/current/ext/callingPython.html">http://www.python.org/doc/current/ext/callingPython.html</a> <br>
<blockquote type="cite" cite="mid200310181745.57441.py@ch3m4.org">
<pre wrap="">
</pre>
<blockquote type="cite">
<pre wrap="">//<----------------------------Aquí falla!
</pre>
</blockquote>
<pre wrap=""><!---->
¿Puedes poner el error que te da?
</pre>
</blockquote>
Segmetation Fault, claramente! Entre ayer y hoy creo de no haber visto nunca
en mi vida tantos Seg. fault!! ;))<br>
Ya resolví el problema por mi cuenta!! Pero es una pena que no pueda comentar
a la lista porque... lo resolví sin darme cuenta al reducir el programa a
minimos factores y ahora ya no se donde estaba el fallo!!!<br>
Si lo descubro lo contaré a la lista.<br>
Esto si, tiengo que dar las gracias a gdb !! Se me ocurrió como poderlo usar
en una extención de python : llamas a gdb con python e importas el programa
cuando legfultea (menuda palabrota) me dice en que linea y la función que
lo provoca. Es un poco lento pero siempre mas rapido y comodo de poner printf
(y fflush) por todos lados que además no puedes poner dentro del codigo del
mismo python.<br>
<blockquote type="cite" cite="mid200310181745.57441.py@ch3m4.org">
<pre wrap="">
</pre>
<blockquote type="cite">
<pre wrap=""> printf("?2"); // <----------- esto nunca lo alcanza!!!
Py_DECREF(tpar);
...........
</pre>
</blockquote>
<pre wrap=""><!---->
- --
Chema Cortes (<a class="moz-txt-link-abbreviated" href="mailto:py@ch3m4.org">py@ch3m4.org</a>)
<a class="moz-txt-link-freetext" href="http://py.ch3m4.org">http://py.ch3m4.org</a>
PGPKEY: <a class="moz-txt-link-freetext" href="mailto:pgpkey@ch3m4.org?subject=__PGPKEY__">mailto:pgpkey@ch3m4.org?subject=__PGPKEY__</a>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2-rc1-SuSE (GNU/Linux)
iD8DBQE/kWA1HLTQrABk8H0RAqn/AJ0UvuoRBTOA25FIysJQ2Bn/O0exOACfSG/c
C+Q/zqSqDDlYQ7YsocEhbRM=
=HOp7
-----END PGP SIGNATURE-----
_______________________________________________
Python-es mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Python-es@aditel.org">Python-es@aditel.org</a>
<a class="moz-txt-link-freetext" href="http://listas.aditel.org/listinfo/python-es">http://listas.aditel.org/listinfo/python-es</a>
</pre>
</blockquote>
<br>
</body>
</html>