LLVM Clang CompilerRT
git clone [email protected]:epfl-vlsc/memoro.git
cd memoro
编译器
mkdir memoro_compiler
cd memoro_compiler
git clone -b memoro_80 https://github.com/epfl-vlsc/llvm.git
cd llvm/tools
git clone -b memoro_80 https://github.com/epfl-vlsc/clang.git
cd ../projects`
git clone -b memoro_80 https://github.com/epfl-vlsc/compiler-rt.git
cd ../../
mkdir build
cd build
cmake -G "Ninja" ../llvm
ninja
可视化应用程序
cd memoro
npm install
cd cpp
make
cd ../
npm start
针对小型程序进行分析
<path to llvm clone>/bin/clang++ -fsanitize=memoro -g -fno-omit-frame-pointer test.cpp
./a.out
针对大型程序进行分析
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=memoro")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/")
原文始发于微信公众号(FreeBuf):Memoro:一款功能强大的堆栈数据细节分析工具
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论