[CastXML] how to print the exact same declaration as in the header ?

Michka Popoff michkapopoff at gmail.com
Fri Jul 22 10:21:05 EDT 2016


Hi

thanks for the nice comments.

Using print on declarations in pygccxml is a nice way to debug you code,
but often you may not want to rely on the __str__ implementation in you real code.

The output of the __str__ method may vary depending on you compiler / platform / code,
and I can not guarantee that this will work in a reliable way in all the situations.
This is something I may add to the documentation; __str__ is for debugging
purposes only.

It is probably better to build the string you want by using the .name, .return_type,
.arguments ... attributes. This is often more flexible, and also more performant,
as you select only the things that you are interested in.

Cheers

Michka


> On 22 Jul 2016, at 16:10, Matt <mattator at gmail.com> wrote:
> 
> I found the code in declarations/free_calldef.py and hacked it
> locally, I might copy/paste the code in my script later then.
> 
> Sorry for the noise
> 
> 2016-07-22 15:36 GMT+02:00 Matt <mattator at gmail.com>:
>> Hi,
>> 
>> I've just started with pygccxml/castxml and I must admit it's quite
>> impressive: doc/examples and worked straightout of the box.
>> 
>> I want to use pygccxml to generate wrapper functions around glibc
>> functions. I can't use LD_PRELOAD or --wrap techniques so I have to
>> copy/paste the declarations of these functions which is a pain.
>> I am trying to automate this copy/paste via pygccxml.
>> 
>> So far, I have:
>> ==
>> func1a = global_namespace.free_function(name="printf")
>> print(func1a)
>> ==
>> which output:
>> extern int printf(__restrict__ char const * __format, ...) [free function]
>> is very near to what I want:
>> extern int printf(__restrict__ char const * __format, ...)
>> 
>> I have done dir(func1a) to see which members I could use and grepped
>> for __str__ to see the magic but miserably fail to find the location.
>> How could I output the same declaration as in the header please ?
>> 
>> 
>> Cheers
>> 
>> Nb: In the list of  programs using pygccxml you could add www.nsnam.org
> _______________________________________________
> CastXML mailing list
> CastXML at public.kitware.com
> http://public.kitware.com/mailman/listinfo/castxml



More information about the CastXML mailing list