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

Matt mattator at gmail.com
Tue Jul 26 18:53:46 EDT 2016


>
> You will see the exact command line by setting:
> utils.loggers.set_level(logging.DEBUG)
Yeah I found that afterwards :/


> I saw that you opened a separate issue for that one, we will continue that
> specific
> discussion there: https://github.com/gccxml/pygccxml/issues/62
>
> Could you please open an issue for your initial problem too ?
Which one was that, I had a few xD ?  about the C code ? I think it's
just a matter of calling gcc/clang instead of g++/clang++ as I found
it on the command line. I also find it easier to track each problem on
github.
I have found ways around all problems but the last, ie. the one that
confounds structures and calls. The code is kinda hard to get into for
this part.

Thanks for your help. Much appreciated already :)

Matt

> I will not be able to tackle all the problems at once,
> so it is better to keep that documented in the bug tracker.
>
> Thanks
>
> Michka
>
>
>
> Thanks for your help :)
>
>
> Cheers
>
> Michka
>
>
>
> 2016-07-22 16:21 GMT+02:00 Michka Popoff <michkapopoff at gmail.com>:
>
> 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