--- layout: fc_discuss_archives title: Message 14 from Frama-C-discuss on March 2012 ---
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Frama-c-discuss] Modifying the AST to insert statements / declarations



Hello,

On 03/19/2012 01:36 PM, Pierre Karpman wrote:
> I'm using your script as a basis for the instrumentation code in my
> plugin but it appears that it's not possible to call any functions of
> the "File" module from inside a dynamic plugin (although there's no
> problems opening the module itself)?!
> I found no reference to such a restriction in the module documentation
> or in the plugin development guide, so is it possible that the issue
> comes from some misconfiguration of mine?

There is no such restriction and there are actually several plug-ins 
which refer to module File. Are you sure that you have no other module 
File somewhere in your linked code which hides the kernel one?

> Anyway, I replaced the call to "File.create_project_from_visitor" by one
> to "Project.create_by_copy" and it seems to work all right, but I'm not
> quite sure there's no difference between the two?

File.create_project_from_visitor internally uses Project.create_by_copy. 
The latter only creates a new project which is a copy of its argument. 
The former performs the same operation, but (1) it also applies the 
provided visitor in order to modify the AST and (2) it reset some 
Frama-C states to keep Frama-C consistent as a whole.

Hope this helps,
Julien