全部博文(436)
分类: LINUX
2012-12-23 11:56:45
Ubuntu下安装SPAN
Linux版本必须高于2.6.31
将压缩文件safari.tar和db-5.2.42.tar.gz复制到home自己的目录下,并解压到当前目录
tar -xf safari.tar
tar -xf db-5.2.42.tar.gz
安装BerkeleyDB
在db-5.2.42中的build_unix目录下执行以下命令:
../dist/configure --enable-cxx --enable-stl
如果执行失败,使用 chmod +x ../dist/configure为configure文件增加可执行权限。
其中--enable-cxx选项表示在生成C语言接口的同时,也生成C++语言接口。--enable-stl表示增加对模板类库的支持。
如果出现configure: error: C++ preprocessor “/lib/cpp” fails sanity
check See `config.log’ for more details
运行sudo apt-get install build-essential
make
进行编译
Make install
如果出现mkdir: cannot create directory `/usr/local/BerkeleyDB.5.2': Permission denied的错误或是其他权限问题,则将权限切换至超级用户,输入su,如果出现如下错误:su: Authentication failure则
解决办法:1.sudo passwd root
2.Enter new UNIX password:
3.Retype new UNIX password:
4.passwd:password updated successfully
在etc/ld.so.conf.d目录下,创建BerkeleyDB-5-2.conf文件,在文件里加上/usr/local/BerkeleyDB.5.2/lib,在终端下执行ldconfig更新。
安装、测试SPAN
在safari/instrument/Debug目录下:
make
生成libsafari.a文件
在safari/analysis/Debug目录下:
make
生成执行文件analysis
编写程序,因为执行时间在100ms一下的程序可能出的结果不准确,因此要考虑到程序的执行时间,试的时候可以写大循环。(以下命令以程序main.c为例)
gcc main.c -c -finstrument-functions
生成main.o
cp main.o safari/instrument/Debug
将main.o复制到safari/instrument/Debug目录下
gcc main.o libsafari.a /usr/local/BerkeleyDB.5.2/lib/libdb-5.2.so
生成a.out
./a.out
运行a.out,生成my_db.db
但是可能会出现Segmentation fault这个错误,还没有解决方法,但是对运行的结果好像不影响,还是能显示程序的执行时间和CPU功耗。
cp my_db.db ../../analysis/Debug/
将my_db.db 复制到safari/analysis/Debug目录下
./analysis
运行结果:
Estimated power may not be accurate if function execution time is less than 100 millisec
Address 8048b54, ID 17340, avg exec time 362 ms, cpu 1708 mW, memory 0 mW