linux 代码分析工具 gprof - 以wpa_supplicant为例
编译wpa_supplicant

tan@tan-VirtualBox:~/gprof/wpa_supplicant-2.5/wpa_supplicant$ make
Building wpa_supplicant requires a configuration file
(.config).See README for more instructions.You can
run "cp defconfig .config" to create an example
configuration.
make:***[verify_config]Error1
../src/drivers/driver_nl80211.c::: fatal error: netlink/genl/genl.h:No such file or directory
sudo apt-get install libnl-dev
驱动网卡


uname -a
Linux tan-VirtualBox3.13.0--generic#~precise1-Ubuntu SMP Tue Jul :: UTC i686 i686 i386 GNU/Linux
https://github.com/lwfinger/rtl8188eu

使用wpa_supplicant
tan@tan-VirtualBox:~/Downloads/rtl8188eu-master$ ps -aux | grep wpa
Warning: bad ps syntax, perhaps a bogus '-'?See http://procps.sf.net/faq.html
root 135900.00.?Ss22::/sbin/wpa_supplicant -B -P /run/sendsigs.omit.d/wpasupplicant.pid -u -s -O /var/run/wpa_supplicant强行干掉:
sudo killall wpa_supplicant
sudo ifconfig wlan0 up
ctrl_interface=/var/run/wpa_supplicant
tan@tan-VirtualBox:~/gprof/wpa_supplicant-2.5/wpa_supplicant$ sudo wpa_supplicant -Dwext-iwlan0 -c./basic.conf
最后使用wpa_cli扫描一下:
tan@tan-VirtualBox:~/gprof/wpa_supplicant-2.5/wpa_supplicant$ sudo ./wpa_cli scan
Selected interface 'wlan0'
OK
tan@tan-VirtualBox:~/gprof/wpa_supplicant-2.5/wpa_supplicant$ sudo ./wpa_cli scan_r
Selected interface 'wlan0'
使用带gprof的wpa_supplicant
https://sourceware.org/binutils/docs-2.16/gprof/
ifndef CFLAGS
#CFLAGS = -MMD -O2 -Wall -g
CFLAGS =-pg -O0 -g
LDFLAGS =-pg -O0 -g
endif
tan@tan-VirtualBox:~/gprof/wpa_supplicant-2.5/wpa_supplicant$ sudo ./wpa_supplicant -Dwext-iwlan0 -c./basic.conf
gprof ./wpa_supplicant > test.txt

-----------------------------------------------0.000.0014/14 wpa_bss_update_scan_res [55][47]0.00.000.0014 wpa_bss_add [47]0.000.0028/28 dl_list_add_tail [23]0.000.0014/68 os_zalloc [10]0.000.0014/14 wpa_bss_copy_res [49]0.000.0014/14 wpa_bss_set_hessid [53]0.000.0014/28 wpa_ssid_txt [30]0.000.0014/53 wpa_msg [15]0.000.0014/14 wpas_notify_bss_added [62]-----------------------------------------------
生成gprof调用图
tan@tan-VirtualBox:~/gprof$ git clone https://github.com/jrfonseca/gprof2dot
sudo apt-get install graphviz
tan@tan-VirtualBox:~/gprof/wpa_supplicant-2.5/wpa_supplicant$ cat test.txt |../../gprof2dot/gprof2dot.py | dot -Tpng-o test.png

tan@tan-VirtualBox:~/gprof/wpa_supplicant-2.5/wpa_supplicant$ cat test.txt |../../gprof2dot/gprof2dot.py -n0 -e0| dot -Tpng-o test_full.png


tan@tan-VirtualBox:~/gprof/wpa_supplicant-2.5/wpa_supplicant$ sudo ./wpa_cli scan
[sudo] password for tan:
Selected interface 'wlan0'
OK
tan@tan-VirtualBox:~/gprof/wpa_supplicant-2.5/wpa_supplicant$ sudo ./wpa_cli scan_r
gprof ./wpa_supplicant |../../gprof2dot/gprof2dot.py -n0 -e0| dot -Tpng-o test_full.png

linux 代码分析工具 gprof - 以wpa_supplicant为例的更多相关文章
- 性能分析工具gprof介绍(转载)
性能分析工具gprof介绍Ver:1.0 目录1. GPROF介绍 42. 使用步骤 43. 使用举例 43.1 测试环境 43.2 测试代码 43.3 数据分析 53.3.1 flat profil ...
- (转)超全整理!Linux性能分析工具汇总合集
超全整理!Linux性能分析工具汇总合集 原文:http://rdc.hundsun.com/portal/article/731.html 出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望, ...
- Android代码分析工具lint学习
1 lint简介 1.1 概述 lint是随Android SDK自带的一个静态代码分析工具.它用来对Android工程的源文件进行检查,找出在正确性.安全.性能.可使用性.可访问性及国际化等方面可能 ...
- 常用 Java 静态代码分析工具的分析与比较
常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基 本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBu ...
- C++静态代码分析工具推荐——PVS-Studio
长假归来,最近一直没更新,节前本来就想写这篇了,一直到今天才有时间. 关于静态代码分析在维基百科上可以查到很详细的介绍:https://en.wikipedia.org/wiki/List_of_to ...
- 来试试这个来自静态代码分析工具PVS Studio提供C++的小测验吧
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:来试试这个来自静态代码分析工具PVS Studio提供C++的小测验吧.
- Cppcheck 1.54 C/C++静态代码分析工具
Cppcheck是一个C/C++代码分析工具,只检测那些编译器通常无法检测到的bug类型. 官方上建议让编译器提供尽量多的警告提示:1.使用Visual C++的话,应使用警告等级4 2.使用GC ...
- 阅读代码分析工具Understand 2.0试用
Understand 2.0是一款源码阅读分析软件,功能强大.试用过一段时间后,感觉相当不错,确实能够大大提高代码阅读效率. 因为Understand功能十分强大,本文不可能详尽地介绍它的全部功能,所 ...
- [转载] 常用 Java 静态代码分析工具的分析与比较
转载自http://www.oschina.net/question/129540_23043 简介: 本文首先介绍了静态代码分析的基本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代 ...
随机推荐
- SharePoint 2013 搜索功能,列表项目不能完全被索引
描述 最近一个站点,需要开启搜索功能,然后创建内容源,开始爬网,发现列表里只有一部分被索引,很多项目没有被索引,甚是奇怪,如下图(其实列表里有80几条项目). 首先爬网账号是系统账号.服务器管理员,所 ...
- Seriailizable(序列化) 的是使用
1.序列化的目的.作用: 为了保存对象的各种状态到内存中(实例变量不是方法),并且可以把保存的对象状态再读取出来.Java提供一种保存对象状态的机制,就是序列化. 2.什么情况下需要序列化 ...
- LinearLayout布局问题
LinearLayout是平时开发中很常见的线性布局方式,分为水平和竖直2种,笔者在实际使用中发现了如下问题,希望能帮到别人. 横着的LinearLayout,凡是设置x坐标的属性都不起作用,比如la ...
- (二)Maven的安装与环境配置
想要安装 Apache Maven在Windows 系统上, 需要下载 Maven 的 zip 文件,并将其解压到你想安装的目录,并配置 Windows 环境变量. 所需工具 : 1.JDK 2.Ma ...
- 解决idea中执行maven命令失败的问题
1.问题描述 如上图所示,在使用idea 里的maven命令执行项目打包时,有时候会报如下一个错误. -Dmaven.multiModuleProjectDirectory system proper ...
- 权重最小生成树的思想与Kruskal算法
晚上做携程的笔试题,附加题考到了权重最小生成树.OMG,就在开考之前,我还又看过一遍这内容,可因为时间太紧,也从来没有写过代码,就GG了.又吃了眼高手低的亏.这不,就好好总结一下,亡羊补牢. 权重最小 ...
- ORACLE基本数据类型总结
ORACLE基本数据类型(亦叫内置数据类型 built-in datatypes)可以按类型分为:字符串类型.数字类型.日期类型.LOB类型.LONG RAW& RAW类型.ROWID &am ...
- URLEncoder.encode 和 URLDecoder.decode 处理url的特殊参数
在使用 url 的 queryString 传递参数时,因为参数的值,被DES加密了,而加密得到的是 Base64的编码字符串,类似于: za4T8MHB/6mhmYgXB7IntyyOUL7Cl++ ...
- mysql的DATE_FORMAT用法
DATE_FORMAT(date,format) date 参数是合法的日期.format 规定日期/时间的输出格式. mysql的DATE_FORMAT用法 %a 缩写星期名 %b 缩写月名 %c ...
- 深入解析SQL Server并行执行原理及实践(上)
在成熟领先的企业级数据库系统中,并行查询可以说是一大利器,在某些场景下他可以显著的提升查询的相应时间,提升用户体验.如SQL Server, Oracle等, Mysql目前还未实现,而Postgre ...