Questions about infersharp implementation
See original GitHub issueHello!
Thanks for this tool and the PR about language-agnostic layer.
This issue is not going to report some bugs and features. I just wanna get answers to my a few questions, which are mainly about infersharp implementation.
- Why
MethodBody
can be found everywhere in cfg.json? And what’s the logic of it? Perhaps I fail to figure out whatMethodBody
means? (e.g Why LdargParser generatesMethodBody
node, while LdcParser doesn’t.) - Is
Metadata
instruction useful? I wanna know the reason infersharp doesn’t implement it. - The point I mostly concerned is whether infer can run some language-unrelated checkers with data (cfg.json & tenv.json) received from language-agnostic layer interface.
Many thanks!
Issue Analytics
- State:
- Created 10 months ago
- Comments:11 (5 by maintainers)
Top Results From Across the Web
microsoft/infersharp
Infer# is an interprocedural and scalable static code analyzer for C#. Via the capabilities of Facebook's Infer, this tool detects null dereferences, ...
Read more >First look at InferSharp: A C# version of Facebook's Infer
Infer belongs to Facebook and it is a static analysis tool to produce a list of potential bugs such as null pointer exceptions,...
Read more >Slaying Zombie 'No Repro' Crashes with Infer# - .NET Blog
First, make sure that Windows Subsystem for Linux (WSL) is properly installed. Then, download and install the InferSharp extension from the ...
Read more >Infer# Brings Facebook's Infer Static Analyzer to C# and .NET
With Infer#, Microsoft extends the choice of static analyzers available within the .NET ecosystem by bringing Facebook Infer's ...
Read more >Newest 'infer#' Questions
I am running a static analyzer (InferSharp) that keeps warning me that this will not properly close the resource as it gives me...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
In general, when the CIL corresponds to an SIL instruction, we create the corresponding SIL instruction which in turn gets added to a MethodBody node. Not all CIL have such a correspondence – for example, ldc refers to the pushing of a constant onto the CIL program stack but has no direct corresponding operation in SIL because the constant doesn’t come from a register. By contrast, ldarg refers to the pushing of an argument’s value onto the CIL program stack; this corresponds to the load of the argument register. Similarly, Initobj/Newarr refer to the creation of objects, which correspond to Call instructions in the SIL, hence we create MethodBody nodes to store these instructions.
Thanks for your patient answer! Make sense here.