<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title></title>
</head>
<body>
<br>
<br>
Chema Cort&eacute;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&oacute;:

Todav&iacute;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-&gt;size);
   PyObject *resid, *lob;
   PyArrayObject *aresid;
   size_t i;
   //Generamos una lista con los parametros:
   for (i=0; i&lt;par-&gt;size; i++)
      PyTuple_SetItem(tpar, i , Py_BuildValue("d",par-&gt;data[i]) );

   //Llamamos al metodo _F(params):
   printf("?1");
   lob=PyObject_CallMethod((PyObject*)self, "_FF", "(O)", tpar);
    </pre>
  </blockquote>
  <pre wrap=""><!---->
&iquest;por qu&eacute; construyes una nueva tupla a partir de tpar? &iquest;no bastar&iacute;a con poner 
"O" como cadena de formato?</pre>
</blockquote>
No, no vale, lo descubr&iacute; en el manual, CallMethod siempre quiere una tupla,
incluso si llamas a una<br>
funci&oacute;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="">//&lt;----------------------------Aqu&iacute; falla!
    </pre>
  </blockquote>
  <pre wrap=""><!---->
&iquest;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&iacute; el problema por mi cuenta!! Pero es una pena que no pueda comentar
a la lista porque... lo resolv&iacute; 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&eacute; a la lista.<br>
Esto si, tiengo que dar las gracias a gdb !! Se me ocurri&oacute; como poderlo usar
en una extenci&oacute;n de python : llamas a gdb con python e importas el programa
cuando legfultea (menuda palabrota) me dice en que linea y la funci&oacute;n que
lo provoca. Es un poco lento pero siempre mas rapido y comodo de poner printf
(y fflush) por todos lados que adem&aacute;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"); // &lt;----------- 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>