工作Ubuntu中使用工具记录

tech2022-10-30  107

bushound:

LINUX下bushond挂载: 2)的USB抓包工具:usb_mon

其实,Ubuntu下已经内置了USB抓包工具—USB_MON

【其实 make menuconfig 时候会让我们选择的】

使用方法如下: # mount -t debugfs none /sys/kernel/debug //这就输入会直接回报 usb busy,可以不输入这句,直接输入下一句 # modprobe usbmon

查看当前的USB device: # cat /sys/kernel/debug/usb/devices #使用此命令也可 lsusb 输入命令后如下:

T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 4 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=1fc9 ProdID=0908 Rev=10.00 //可以看见VID 0x1fc9 PID 0x0908 S: Manufacturer=Sumarte Technology S: Product=Vehicle Bus Adapter C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA I:* If#= 0 Alt= 0 #EPs= 6 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) E: Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms E: Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms E: Ad=82(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms E: Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms E: Ad=83(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms

通过BUS=01 查看Bus01上的全部USB数据包 #cat /sys/kernel/debug/usb/usbmon/1u 监听全部 #cat /sys/kernel/debug/usb/usbmon/0u

/******************************************************************************************/

wireshark跟usb_mon:

加载usbmon模块 sudo mount -t debugfs none /sys/kernel/debug #这一步一般不用做,debugfs默认都是挂载的sudo modprobe usbmon 若加载成功,则 sudo ls /sys/kernel/debug/usb,可以看到usbmon文件夹。 添加udev规则,使得wireshark可以捕获到usb接口数据 addgroup usbmongpasswd -a $USER usbmonsudo vi /etc/udev/rules.d/99-usbmon.rules #加入下面一行,保存退出SUBSYSTEM==“usbmon”, GROUP=“usbmon”, MODE="640“

lsusb查看usb设备在哪条总线上 Bus 003: 设备在第3条总线上Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

运行wireshark,注意要在root用户下,否则看不到usbmon sudo wireshark 运行时可能会报权限之类的错误,直接跳过,选取后直接点击Start即可

以上步骤都配置过后,下次打开只需要一下步骤即可:

sudo modprobe usbmon —>加usbmonlsusb —> 查看设备在那根总线上sudo wireshark —>打开wireshark 如果wireshark打开后不能看见对应总线,用 cat /sys/kernel/debug/usb/usbmon/1u 查看下总线是否能打开。

/******************************************************************************************/

Xshell ubuntu安装过程:

sudo apt-get install openssh-server //安装ssh服务器 sudo apt-get install ssh //安装ssh 以下针对14.04 sudo ps -e |grep ssh //查看ssh是否启动 sudo service ssh start //启动SSH服务 重启ssh服务/etc/init.d/ssh restart。

valgrind

valgrind工具安装步骤: (1)wget http://www.valgrind.org/downloads/valgrind-3.11.0.tar.bz2 下载安装包   valgrind在版本上很傲娇,最好下载最新的版本,否则会出现很多莫名其妙的问题。 (2)bzip2 -d valgrind-3.11.0.tar.bz2 (3)tar xvf valgrind-3.11.0.tar cd valgrind-3.11.0 (4)使用超级用户执行以下命令:   sudo ./configure   sudo make   sudo make install (5)配置环境变量   切换到cd /etc/profile.d目录下,使用超级用户创建文件valgrind.sh   里面添加如下内容   #!/bin/sh   VALGRIND_ROOT=/home/Lyndon/valgrind-3.11.0   VALGRIND_INCLUDE=/usr/local/include/valgrind   VALGRIND_LIB=/usr/local/lib/valgrind   export VALGRIND_ROOT VALGRIND_INCLUDE VALGRIND_LIB    (6)修改valgrind.sh的权限 sudo chmod +x valgrind.sh,执行./valgrind.sh

使用: valgrind --tool=memcheck --leak-check=yes --show-reachable=yes ./a.out

使用valgrind的callgrind工具进行多线程性能分析:

valgrind是开源的性能分析利器。 根据它的文档,可以用它来检查内存泄漏等问题,还可以用来生成函数的调用图,就这两个功能就足够有吸引力了。 本文主要是介绍如何使用valgrind的callgrind工具进行性能分析。 分析过程

使用callgrind工具生成性能分析数据 命令格式如下: valgrind --tool=callgrind ./exproxy 其中 ./exproxy就是我们要分析的程序。执行完毕后,就会在当前目录下生成一个文件。文件名为“callgrind.out.进程号”。如,callgrind.out.31113。注意,对于daemon进程的调试,不要通过kill -9方式停止。 如果你调试的程序是多线程,你也可以在命令行中加一个参数 -separate-threads=yes。这样就会为每个线程单独生成一个性能分析文件。如下: valgrind --tool=callgrind --separate-threads=yes ./exproxy 生成的文件除了callgrind.out.31113外,还会多出一些子线程的文件。文件名如下: callgrind.out.31113-01 callgrind.out.31113-02 callgrind.out.31113-03

把callgrind生成的性能数据转换成dot格式数据 可以使用gprof2dot.py脚本,把callgrind生成的性能分析数据转换成dot格式的数据。方便使用dot把分析数据图形化。 脚本可以 点此下载 。脚本使用方式如下: python gprof2dot.py -f callgrind -n10 -s callgrind.out.31113 > valgrind.dot 使用dot把数据生成图片 命令格式如下: dot -Tpng valgrind.dot -o valgrind.png

使用dot把数据生成图片 dot工具安装: sudo apt-get install xdot

命令格式如下: dot -Tpng valgrind.dot -o valgrind.png

打开valgrind.png: 参考:https://www.cnblogs.com/zengkefu/p/5642991.html 工具安装:https://blog.csdn.net/fengjingge/article/details/41727265

最新回复(0)