1前言 前面介绍了GCC自带的mtrace内存泄漏检查工具,该篇主要介绍开源的内存泄漏工具valgrind,valgrind是一套Linux下,开放源代码的动态调试工具集合,能够检测内存管理错误、线程BUG等,valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件(plug-in),利用内核提供的服务完成各种特定的内存调试任务。 该篇主要是介绍valgrind在联咏NT98X系列芯片的ARM平台上的编译使用及在使用过程中遇到的问题。1.1介绍val
1前言 前面介绍了GCC自带的mtrace内存泄漏检查工具,该篇主要介绍开源的内存泄漏工具valgrind,valgrind是一套Linux下,开放源代码的动态调试工具集合,能够检测内存管理错误、线程BUG等,valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件(plug-in),利用内核提供的服务完成各种特定的内存调试任务。 该篇主要是介绍valgrind在联咏NT98X系列芯片的ARM平台上的编译使用及在使用过程中遇到的问题。1.1介绍val
通过前面的介绍了,我们可以自己实现数据的发布,然后在cartographer进行建图和定位,并调整参数查看效果。本节就将介绍在cartographer用自己的数据进行建图和定位(在线和离线)。在线和离线的区别只在于实时订阅数据和直接回放Rosbag中的数据。目录1,在线建图2,离线建图3,在线定位4,离线定位1,在线建图拷贝修改文件为自己对应的设置:backpack_2d.launch -> my_robot_2d.launchbackpack_2d.lua -> my_robot_2d.lua在.lua配置文件中设定TF转换关系:map_frame="map",trackin
通过前面的介绍了,我们可以自己实现数据的发布,然后在cartographer进行建图和定位,并调整参数查看效果。本节就将介绍在cartographer用自己的数据进行建图和定位(在线和离线)。在线和离线的区别只在于实时订阅数据和直接回放Rosbag中的数据。目录1,在线建图2,离线建图3,在线定位4,离线定位1,在线建图拷贝修改文件为自己对应的设置:backpack_2d.launch -> my_robot_2d.launchbackpack_2d.lua -> my_robot_2d.lua在.lua配置文件中设定TF转换关系:map_frame="map",trackin
一、写在前面又有很久没更文了,真的是被催婚搞的整个人情绪特别不好,如果硬要形容的话,那就是没法跟人正常沟通,一点就着,做什么都没耐心,看什么都烦,简直没救了...也是偶然发现的,自己居然没写关于Playwright的元素定位,这不是自动化测试的重中之重,怎么可以忘,马上安排!二、元素定位主要支持定位方式有:css、xpath、text。示例代码如下://选择单个元素page.querySelector("selector");//选择多个元素page.querySelectorAll("selector");//选择单个元素,并且自动等待到元素可见、可操作page.waitForSelecto
一、写在前面又有很久没更文了,真的是被催婚搞的整个人情绪特别不好,如果硬要形容的话,那就是没法跟人正常沟通,一点就着,做什么都没耐心,看什么都烦,简直没救了...也是偶然发现的,自己居然没写关于Playwright的元素定位,这不是自动化测试的重中之重,怎么可以忘,马上安排!二、元素定位主要支持定位方式有:css、xpath、text。示例代码如下://选择单个元素page.querySelector("selector");//选择多个元素page.querySelectorAll("selector");//选择单个元素,并且自动等待到元素可见、可操作page.waitForSelecto
昨晚我正在床上睡得着着的,突然来了一条短信。什么?线上的订单无法取消!我赶紧登录线上系统,查看业务日志。发现有MySQL锁超时的错误日志。不用想,肯定有另一个事务正在修改这条订单,持有这条订单的锁。导致当前事务获取不到锁,一直等待,直到超过锁超时时间,然后报错。既然问题已经清楚了,接下来就轮到怎么排查一下到底是哪个事务正在持有这条订单的锁。好在MySQL提供了丰富的工具,帮助我们排查锁竞争问题。现场复现一个这个问题:创建一张用户表,造点数据:CREATETABLE`user`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'主键ID',`name`varchar
昨晚我正在床上睡得着着的,突然来了一条短信。什么?线上的订单无法取消!我赶紧登录线上系统,查看业务日志。发现有MySQL锁超时的错误日志。不用想,肯定有另一个事务正在修改这条订单,持有这条订单的锁。导致当前事务获取不到锁,一直等待,直到超过锁超时时间,然后报错。既然问题已经清楚了,接下来就轮到怎么排查一下到底是哪个事务正在持有这条订单的锁。好在MySQL提供了丰富的工具,帮助我们排查锁竞争问题。现场复现一个这个问题:创建一张用户表,造点数据:CREATETABLE`user`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'主键ID',`name`varchar
之前很多项目使用地图时技术选型不一样;一会儿使用腾讯地图、一会儿使用高德地图,一会儿使用百度地图;每次使用都去查相关api封装请求很麻烦,于是自己简单封装了一下;插件介绍:基于h5浏览器gps定位、百度地图、高德地图、腾讯地图api封装的获取位置信息相关插件,支持高精度定位;选择使用哪个地图传入对应的地图key即可,主要功能有根据ip定位(适用于定位到城市级别)、获取当前位置经纬度(gps、百度、高德、腾讯)、坐标转换、逆地址编码(根据经纬度获取具体位置信息);想实现获取具体高精度位置信息,可先获取高精度的gps坐标,使用逆地址编码方法将坐标转换为对应的位置信息;插件内已使用jsonp解决了请
之前很多项目使用地图时技术选型不一样;一会儿使用腾讯地图、一会儿使用高德地图,一会儿使用百度地图;每次使用都去查相关api封装请求很麻烦,于是自己简单封装了一下;插件介绍:基于h5浏览器gps定位、百度地图、高德地图、腾讯地图api封装的获取位置信息相关插件,支持高精度定位;选择使用哪个地图传入对应的地图key即可,主要功能有根据ip定位(适用于定位到城市级别)、获取当前位置经纬度(gps、百度、高德、腾讯)、坐标转换、逆地址编码(根据经纬度获取具体位置信息);想实现获取具体高精度位置信息,可先获取高精度的gps坐标,使用逆地址编码方法将坐标转换为对应的位置信息;插件内已使用jsonp解决了请