控制流程图,使用Roslyn,.NET编译器平台进行数据/帧间数据流分析

时间:2016-05-23 02:11:52

标签: c# asp.net .net roslyn roslyn-code-analysis

我已经读过Roslyn不提供本机CFG实现,也不提供公共的数据流间或内部数据流分析。然而,这是基于Roslyn RC2的来源,可能真的很老。今天仍然如此吗?

我正在尝试进行污点分析,即我应该能够在传递函数或分配给其他变量之后跟踪变量。

任何帮助将不胜感激!谢谢!

2 个答案:

答案 0 :(得分:3)

Roslyn从1.2开始只有有限的内置数据流分析,以便了解单个方法中一组跨度中使用的变量。这用于“提取方法”重构,以查看需要移动的变量。否则,如果你想做更大的事情,你仍然可以独立。

答案 1 :(得分:1)

与此同时,似乎有一个公共API可用于获取控制流程图(到目前为止处于预览状态)。 我找不到其他文档。

源代码:http://source.roslyn.io/#Microsoft.CodeAnalysis/Operations/ControlFlowGraph.cs

在单元测试中的用法示例:http://source.roslyn.io/#Roslyn.Test.Utilities/Compilation/ControlFlowGraphVerifier.cs

GitHub问题:https://github.com/dotnet/roslyn/issues/24104