stoat
1.0.0

Stoat是主張有關程序/庫的呼叫圖的屬性的工具。該工具的主要用法是分析需要在混合代碼庫的一部分中執行艱苦的實時操作的程序。這是通過識別所有可以從某些已知的根函數中調用的功能來完成的,這必須是實時的。如果在此傳遞閉合中找到可能會阻止任意時間的任何不安全函數,則會發出錯誤以指示在哪裡可以找到不當行為,以及哪些返回軌道被調用。
在C/C ++中維護大型代碼庫可能會使很難知道哪些代碼最終調用其他例程。當一個代碼庫中存在一些隔離時,這將更加複雜,而實施中可能根本不清楚。某些C ++技術的不透明性(例如虛擬超載,運算符過載,多個繼承和隱式轉換)的不透明性更加複雜。
LLVM 3.3+
叮噹3.3+
C ++ Filt
紅寶石
Callviz Gem(可選)callgraph渲染
為彩色輸出著色(可選)
git clone https://github.com/fundamental/stoat && cd stoat
mkdir build && cd build
cmake .. && make && make test
make install # or just run in place內聯安全標記__ ATTRIBUTE __((Annotate(“ realtime”)))
內聯危險標記__ Attribute __((Annotate(“非實時”)))
台外白名單/黑名單
離線抑製文件
安全或矛盾圖的圖形功能
支持librtosc中的調度樹分析
用__ATTRIBUTE __((nottate(“ realtime”))註釋root實時函數)
用CC = stoat-Compile cxx = stoat-compile ++編譯所有文件
使用 - 恢復選項在生成的LLVM IR文件上運行StoAT
查看矛盾
可選地使用-G選項重做分析以圖形方式查看矛盾
更新您的代碼,白名單或抑制清單
享受更安全的代碼
有關更明確的指南
Stoat可在GPLV3許可證下獲得