自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

原创 collectd+influxdb+grafana监控系统性能

常用配置:1. influxdb + grafana安装在一台机器负责监控数据收集及展示2. collectd安装在一台或多台被监控服务端,跟监控端的25826端口对接,上传本地监控的数据3. influxdb监控25826端口以获得数据,自身处于8086端口,grafana从8086获得数据进行展示......

2022-06-09 19:14:53 399

原创 breakpad简单使用

breakpad简单使用breakpad是google开发的一个跨平台C/C++ dump捕获开源库,崩溃文件使用微软的minidump格式存储,也支持发送这个dump文件到你的服务器,breakpad可以在程序崩溃时触发dump写入操作,也可以在没有触发dump时主动写dump文件。breakpad支持windows、linux、macos、android、ios等。目前已有Google Chrome, Firefox, Google Picasa, Camino, Google Earth等项目使用。

2022-06-01 21:12:31 1905

原创 mutex死锁问题排查

使用gdb$ g++ -g -O0 -fno-omit-frame-pointer ./test.cc -o test -lpthread$./test before lock_guard重新开启一个终端,打开gdb$ sudo gdb attach $(pidof test)GNU gdb (Ubuntu 9.2-0ubuntu1~20.04.1) 9.2Copyright (C) 2020 Free Software Foundation,

2022-05-27 21:27:46 1634

原创 使用LD_PRELOAD加载malloc free wrapper库

1.测试程序编译运行测试代码test.c#include <stdio.h>#include <stdlib.h>int main(){ printf("main func addr:%p\n", main); printf("start malloc\n"); char * pc1 = malloc(10); char * pc2 = malloc(10); printf("start free\n"); free(pc1)

2022-05-27 17:11:22 554

原创 c++模板编程学习之trait&policy

本程序摘自c++ Templates,具体技术细节请参考该书。accumtraits.hpp内容如下#ifndef ACCUM_TRAITS_H#define ACCUM_TRAITS_Htemplate <typename T>class AccumulationTraits;template<>class AccumulationTraits<char> { public: typedef int AccT; static AccT

2021-04-02 11:44:59 166

原创 apollo源码分析之节点创建与运行流程

本文以apollo官方例子CommonComponentSample进行分析,CommonComponentSample声明如下:File: /home/lgy/opensource/apollo/cyber/examples/common_component_example/common_component_example.h25: class CommonComponentSample : public Component<Driver, Driver> {26: public:2

2021-04-01 16:33:58 1270

原创 c++模板编程学习之stack

摘自c++ templates中文版基础部分stack.h#ifndef STACK_HPP#define STACK_HPP#include <deque>#include <stdexcept>template <typename T, typename CONT = std::deque<T>>class Stack {private: CONT elems; // elementspublic: void pu

2021-03-29 16:59:58 86

原创 ros melodic源码分析之消息订阅subscribe

一个简单的订阅程序如下:File: /home/lgy/ros_catkin_ws/src/ros_tutorials/roscpp_tutorials/listener/listener.cpp29: #include "ros/ros.h"30: #include "std_msgs/String.h"36: void chatterCallback(const std_msgs::String::ConstPtr& msg)37: {38: ROS_INFO("I hear

2021-03-19 14:22:47 1371

原创 ros melodic源码分析之消息发布msg publish

一个简单的消息发布使用案例如下代码所示本代码出自ros源码src/ros_tutorials/roscpp_tutorials/talker/talker.cpp#include "ros/ros.h"#include "std_msgs/String.h"#include <sstream>int main(int argc, char **argv){ ros::init(argc, argv, "talker"); **ros::NodeHandle n;**

2021-03-18 14:19:41 683

原创 ros melodic源码分析之connect_manager

一、首先分析transporttransport封装了tcp udp通信,将socket基本操作封装起来,加入一堆回调函数,当事件触发时调用相应的回调函数。先看transport基类:File: ros_comm/roscpp/include/ros/transport/transport.h56: class ROSCPP_DECL Transport : public boost::enable_shared_from_this<Transport>57: {58: publi

2021-03-16 18:35:42 637

原创 ros melodic源码分析之poll_manager

本文分析ros melodic源码涉及到的poll监控一、poll底层操作涉及源文件 io.cpp io.h,关键源码如下int create_socket_watcher() { epfd = ::epoll_create1(0); return epfd;}void add_socket_to_watcher(int epfd, int fd) { struct epoll_event ev; bzero(&ev, sizeof(ev)); ev.events

2021-03-15 18:29:11 324

原创 c++11实现安全单例模式

方法一、使用once_flag call_once#include <iostream>#include <memory>#include <mutex>#include <thread>class Singleton{public: static std::shared_ptr<Singleton> GetInstance(); ~Singleton(){ std::cout << "de

2021-03-09 17:59:22 188

原创 autoware 1.14 lgvsl simulator仿真

参考链接:Autoware.AI 1.14.0 with LGSVL Simulatorhttps://www.lgsvlsimulator.com/docs/autoware-instructions/安装git lfs环境,用于支持大文件下载参考:https://www.jianshu.com/p/493b81544f80curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh |

2020-12-29 17:31:47 3141 4

原创 ubuntu 路由修改网络优先级

使用route metric修改路由优先级原有路由如下lgy@testlgy@test-z:~$ route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface0.0.0.0 10.58.122.1 0.0.0.0 UG 100 0 0 enp7s00.0.0.0

2020-12-12 11:23:19 7299 4

原创 autoware.auto如何编译 x64以及nvidia平台

安装adewget https://gitlab.com/ApexAI/ade-cli/uploads/591bf9c7ef766cf859749b21afa700b7/ade+x86_64sudo mv ade+x86_64 /usr/local/binade --version设置ade homemkdir adehomecd adehometouch .adehomegit clone https://gitlab.com/autowarefoundation/auto

2020-12-12 11:17:04 1051

原创 nvidia JetPack4.4.1 L4T32.4.4 autoware1.14 opencv库冲突解决办法

autoware1.14 需要opencv3的库,nvidia jetpack4 安装后为opencv4如何替换呢?autoware1.14 安装opencv3需要的opencv库libopencv3.2 libopencv-calib3d3.2 libopencv-contrib3.2 libopencv-core3.2 libopencv-dev libopencv-features2d3.2 libopencv-flann3.2 libopencv-highgui3.2 libopencv-i

2020-12-12 11:10:26 437 1

原创 valgrind工具简单使用

1概述1.1 介绍Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。Valgrind的体系结构如下图所示:1.2 ...

2020-04-07 17:29:37 252

原创 perf+FlameGraph火焰图性能分析

1、perf简单实用性能调优时,我们通常需要分析查找到程序百分比高的热点代码片段,这便需要使用 perf record 记录单个函数级别的统计信息,并使用 perf report 来显示统计结果。比如代码perf_flamegraph_test.c如下:#include <pthread.h>#include <stdio.h>void func_d(){...

2020-04-07 14:45:16 394

原创 根据epc和ra定位linux kernel panic位置

一、背景项目中出现了一次插拔sc卡导致死机的问题,不幸的是没有保存下来coredump文件,只有简要的epc和ra信息。尝试复现问题,一直不能复现。所以尝试通过epc和ra去找到问题。二、分析过程log信息如下,目的是想定位到出错的源代码。[10:39:09]Activating card[10:39:10]ATR: 3F EF 07 7F F8 FF FF 07 03 FF FF 80...

2019-09-05 10:51:33 4291

原创 调试信息之网络打印

使用串口打印调试信息,通常设置为115200bps, N81,这种设置每秒打印10K+字节的调试信息。比如打印信息:[I:ERROR][T:19/09/04 16:15:19:649][F:ca.c][C:ca_update_sys_mode][L:1979] Get CA status failed,有100+字节,打印这条信息耗时约为10ms。目前应用,只打印关键信息,每次操作有120+条...

2019-09-05 10:04:00 349

原创 信号量死锁排查手段

信号量死锁表现就是系统卡死了,但是在多线程程序中并不是那么容易跟踪。一种排查方法是#define MODULE_LOCK(sem_handle) \ do{ \ bool cret; \ module_pwarning("lock in\n"); \ cret=os_acquire...

2019-09-05 09:52:03 420

collectd_influxdb_grafana.tar.gz

collectd_influxdb_grafana配置

2022-06-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除