当前位置 博文首页 > lovely_yoshino的博客:Ubuntu环境下便于调试代码的工具
(1)linux下文本操作以及log相关内容可视化
首先获取日志文件,然后使用linux的awk工具抽取包含某字段的整行日志并保存到文件
awk '{if($0~"key_value") print}' xxx.log > a.txt
这时候,xxx.log文件中只会包含某些特定的行,但是其实你只需要行里面的某一列(比如打印的函数耗时),注意行号是从1开始的。
awk '{print $列号}' xxx.log > timestamp.txt
此时就可以使用kst2工具将里面的内容可视化了(注意kst的列号也是从1开始的)。
kst2 timestamp.txt -y 列号
(2)高效的离线调试手段
在跑slam的长数据集的时候,需要花比较长的时间来看ros的可视化,可以采用下面的方法提高效率。使用Kazam录制屏幕,使用sm-player对录制的视频进行回放。sm-player能够对视频进行加速播放。
安装Kazam和sm-player的命令如下
sudo apt-get install kazam
sudo apt-get install smplayer
Kazam录制视频的方法很简单,这里就不介绍了。下面介绍下smplayer回放功能,打开smplayer,然后点击Open,选择File,点击播放,快进的快捷键为“]”,慢进的快捷键为“[”,快速切换到正常速度的快捷键为"Backspace"也就是删除键。
(3)valgrind内存分析
使用valgrind检查内存占用
valgrind -tool=massif ./exe #可执行程序的Args...
使用massif-visualizer对内存分析的结果进行可视化。首先启动massif-visualizer,然后打开log文件就可以了。
massif-visualizer的安装命令如下:
sudo apt-get install massif-visualizer
(4)valgrind代码耗时分析
可以检查不同函数对cpu资源的使用情况
valgrind -tool=callgrind ./exe #可执行程序的Args..
生成的.out文件用kcachegrind可视化查看
cs