当前位置 博文首页 > lovely_yoshino的博客:Ubuntu环境下便于调试代码的工具

    lovely_yoshino的博客:Ubuntu环境下便于调试代码的工具

    作者:[db:作者] 时间:2021-09-16 22:29

    (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