Skip to content

The MagpieBridge System

Linghui Luo edited this page Jul 16, 2020 · 8 revisions

MagpieBridge needs to support various analysis tools that were built on top of different frameworks, e.g., TAJ, Andromeda and HybriDroid use WALA, while CogniCrypt, FlowDroid and DroidSafe rely on Soot and many other analyses are based on Doop. These analysis frameworks have different IRs, which MagpieBridge needs to use to generate analysis results. One key requirement for all the frameworks supported by MagpieBridge is very precise source-code mappings, since in LSP all the messages communicate using starting and ending line and column numbers. The following figure shows how MagpieBridge achieves this requirement for analyses based on different frameworks for analyzing Java applications.

MagpieBridge is not limited for analyses which are designed for Java applications.

WALA has also Python and JavaScript front ends. Thus, any WALA-based analysis for Python and JavaScript can be integrated into IDEs and editors with MagpieBridge. Moreover, MagpieBridge has been designed in a general way such that any analysis which has a command line interface and outputs analysis results with source code information can use MagpieBridge for IDE integration.

Here is an example of integrating the command line tool Facebook Infer with MagpieBridge.

Clone this wiki locally