[Axl] axl_doc_parse_from_file aborts program in subfunction

Francis Brosnan Blazquez francis at aspl.es
Mon Feb 17 10:16:37 CET 2014


> Hi Francis,


Hi Raphael,


> yes, I missed the & operator. But it unfortunately doesn't make it
> work...
> 
> I now suspect it has something to do with the axlDoc/axlNode variables
> and their release from memory. Why is that? In the program I have
> another function that also uses axl library in this way, which is
> called before the function I posted that doesn't work.


The code you posted, in the relation to memory allocation is pefect. It
cannot break. 
Maybe the document activates a bug inside axl engine. Can you post the
document that triggers the failure?

Please, remove any sensitive data before posting.


> So, the first time axl library is used it works - the second time it
> doesn't. 


It's hard to tell but if you consider it loads the first time and the
second breaks, it is a signal for
something messing internal memory allocation structures. I saw this in
the past....

...but the culprit can also be other memory handling errors.

In any case, I recommend you to run your test under valgrind supervision
to spot the failure.
It's your best option.


> I use the memory release functions axl_doc_free and so on. That should
> do the job, no? 


Yes but, this has nothing to do with your problem. If you take a look at
your function, each
time the document is parsed, a new axlDoc document is loaded...so each
axl_doc_free 
function is independent...unless you are calling axl_doc_free twice over
the same variable...

...which is something that is not shown in your example (your code
doesn't show where and how
axl_doc_free is called).


> And in any case the variables are only defined locally. I also already
> tried using different names for the axl objects in the different
> functions. Or does it have to do anything with the axl_init() and
> axl_end() functions? Which are - according to the documentation - not
> even functional right now?


My impression is that your problem is around some wrong memory
deallocation somewhere or 
maybe a bug inside axl engine that causes wrong memory
allocation/deallocation patterns....

...but it is hard to tell without a full working example. Using valgrind
to check your program and 
the usage of axl is not doing fancy things with the memory.

Best Regards,


> Best regards
> Raphael
> 
> 
> Am 14.02.2014 17:20, schrieb Francis Brosnan Blazquez:
> 
> > 
> > Hi Raphael,
> > 
> > 
> > > I've got a problem with parsing a file. I've got a subfunction that 
> > > starts as stated:
> > > 
> > > int write_frq(int n_pump, double frqs[]) {
> > >      axlError *a_err = NULL;
> > > 
> > >      axlDoc *doc = NULL; //axl library document object
> > >      axlNode *root = NULL; //axl library root node object
> > >      axlNode *node = NULL; //node object for navigation
> > > 
> > >      printf("DEBUG - write frq() axl variables defined\n");
> > > 
> > >      //get doc reference
> > >      doc = axl_doc_parse_from_file("GAtest1_input.xml", a_err);
> > 
> > 
> > ..this must be:
> > 
> > doc = axl_doc_parse_from_file ("GAtest1_input.xml", &a_err); // put
> > an & so you pas a axlErr **
> > 
> > ...I wonder how your compiler is missing this error :-??
> > 
> > Best Regards,
> > -- 
> > Francis Brosnan Blázquez <francis.brosnan at aspl.es>
> > ASPL
> > 91 134 14 22 - 91 134 14 45 - 91 116 07 57
> > 
> > AVISO LEGAL
> > 
> > Este mensaje se dirige exclusivamente a su destinatario. Los datos
> > incluidos en el presente correo son confidenciales y sometidos a secreto
> > profesional, se prohíbe divulgarlos, en virtud de las leyes vigentes. Si
> > usted no lo es y lo ha recibido por error o tiene conocimiento del mismo
> > por cualquier motivo, le rogamos que nos lo comunique por este medio y
> > proceda a destruirlo o borrarlo.
> > 
> > En virtud de lo dispuesto en la Ley Orgánica 15/1999, de 13 de
> > diciembre, de Protección de Datos de Carácter Personal, le informamos de
> > que sus datos de carácter personal, recogidos de fuentes accesibles al
> > público o datos que usted nos ha facilitado previamente, proceden de
> > bases de datos propiedad de Advanced Software Production Line, S.L.
> > (ASPL). No obstante, usted puede ejercitar sus derechos de acceso,
> > rectificación, cancelación y oposición dispuestos en la mencionada Ley
> > Orgánica, notificándolo por escrito a:
> > ASPL - Protección Datos, C/Antonio Suárez 10 A-102, 28802, Alcalá de
> > Henares (Madrid).
> 
> 
> 
> _______________________________________________
> Axl mailing list
> Axl at lists.aspl.es
> http://lists.aspl.es/cgi-bin/mailman/listinfo/axl


-- 
Francis Brosnan Blázquez <francis.brosnan at aspl.es>
ASPL
91 134 14 22 - 91 134 14 45 - 91 116 07 57

AVISO LEGAL

Este mensaje se dirige exclusivamente a su destinatario. Los datos
incluidos en el presente correo son confidenciales y sometidos a secreto
profesional, se prohíbe divulgarlos, en virtud de las leyes vigentes. Si
usted no lo es y lo ha recibido por error o tiene conocimiento del mismo
por cualquier motivo, le rogamos que nos lo comunique por este medio y
proceda a destruirlo o borrarlo.

En virtud de lo dispuesto en la Ley Orgánica 15/1999, de 13 de
diciembre, de Protección de Datos de Carácter Personal, le informamos de
que sus datos de carácter personal, recogidos de fuentes accesibles al
público o datos que usted nos ha facilitado previamente, proceden de
bases de datos propiedad de Advanced Software Production Line, S.L.
(ASPL). No obstante, usted puede ejercitar sus derechos de acceso,
rectificación, cancelación y oposición dispuestos en la mencionada Ley
Orgánica, notificándolo por escrito a:
ASPL - Protección Datos, C/Antonio Suárez 10 A-102, 28802, Alcalá de
Henares (Madrid).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.aspl.es/pipermail/axl/attachments/20140217/573bde03/attachment.html>


More information about the Axl mailing list