工具软件
LinuxG_G
90年程序员,坐标深圳某IT公司。对新技术充满兴趣,使用的编程语言:C/C++,python, Linux shell;
熟悉常见数据结构及算法,Linux编程,了解java,Android开发。
技能库:
STL, python, 多线程编程, TCP/IP, Linux shell
java, android, 数据库
爱好运动,兴趣比较广泛:basketball,badminton,swim,running等
博客主要用Github 及 csdn,欢迎交流。
联系方式:qq 754860961
展开
-
vscode无法跳转到函数定义
在打开的c_cpp_properties.json JSON文件编辑窗口中,修改 cppStandard 为:c++20。或者修改成c++14/c++17,你的c++代码是哪个版本的,那就改成哪个就行。原因一:C/C++插件没有生效。VS Code 安装 C/C++插件后,按 F12 后无法跳转到函数定义处,此时可以先 Disable C/C++ 插件,再 Eanble C/C++ 插件。输入:Edit configurations。原因二:C/C++标准没有配置正确。执行命令打开搜索:⇧⌘P。原创 2023-01-31 14:07:40 · 15006 阅读 · 3 评论 -
使用 gperftools 分析程序内存占用情况
使用 gperftools 分析程序内存占用情况原创 2022-09-08 10:21:25 · 3237 阅读 · 0 评论 -
使用doxygen生成接口api文档
符合doxygen格式的代码注释可以直接通过doxygen命令生成api文档:# doxygen -h Doxygen version 1.8.5Copyright Dimitri van Heesch 1997-2013You can use doxygen in a number of ways:1) Use doxygen to generate a template configuration file: doxygen [-s] -g [configName] If原创 2021-11-26 16:39:01 · 899 阅读 · 0 评论 -
Bazel BUILD文件格式化及命名
BUILD文件格式化:BUILD style guide - Bazel mainhttps://docs.bazel.build/versions/main/skylark/build-style.html命名工具:CODELFBest GitHub stars, repositories tagger and organizer. Search over projects from Github, Bitbucket, Google Code, Codeplex, Sourceforge, Fedo原创 2021-09-12 17:08:04 · 676 阅读 · 0 评论 -
一个简单的滚动日志脚本
程序运行中不免会不断打印日志,为了避免日志过大,一般需要做滚动日志功能,这有几种做法:使用滚动日志库接口进行日志打印使用logrotate开源软件进行log rotate使用日志滚动脚本:原理是监控日志大小,若超过大小则使用truncate进行日志截取+日志文件滚动对于一个简单的应用来说,使用3最简单省事,其日志脚本如下(使用方式见注释):#!/bin/sh# https://github.com/eyjian/mooon/blob/master/mooon/shell/log_rotate原创 2021-05-18 22:31:05 · 721 阅读 · 0 评论 -
gdb调试
先记录几篇不错的文章,后面再来补充下https://github.com/selfboot/CS_Offer/blob/master/C%2B%2B/GDB_Debug.mdhttps://deepzz.com/post/gdb-debug.html gdb调试http://www.vimer.cn/2009/11/07/shi-yong-gdbdiao-shi-cheng-xu-xiang-jie/小技巧:[gdb查看shared_ptr](https://blog.csdn.net/cao1原创 2021-03-26 14:18:11 · 115 阅读 · 0 评论 -
[转]彻底搞懂 Git-Rebase
使用 Git 已经好几年了,却始终只是熟悉一些常用的操作。对于 Git Rebase 却很少用到,直到这一次,不得不用。一、起因上线构建的过程中扫了一眼代码变更,突然发现,commit提交竟然多达62次。我们来看看都提交了什么东西:这里我们先不说git提交规范,就单纯这么多次无用的commit就很让人不舒服。可能很多人觉得无所谓,无非是多了一些提交纪录。然而,并非如此,你可能听过破窗效应,编程也是如此!二、导致问题1.不利于代码review设想一下,你要做code...转载 2021-02-21 15:34:06 · 270 阅读 · 0 评论 -
pstack命令使用说明
pstack命令介绍使用man查看pstack命令介绍:NAME gstack - print a stack trace of a running processSYNOPSIS gstack pidDESCRIPTION gstack attaches to the active process named by the pid on the command line, and prints out an execution stack tra原创 2020-10-11 20:23:19 · 835 阅读 · 0 评论 -
【转】GDB调试程序及分析core
使用 GDB 调试程序GDB是UNIX下面的程序调试工具, 可以调试多种类型程序, 主要可以完成以下四个功能:启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。可让被调试的程序在指定的调置的断点处停住。(断点可以是条件表达式)当程序被停住时,可以检查此时程序中所发生的事。动态的改变程序的执行环境。简单的调试例子测试程序如下:#include <stdio.h>int func(int n){ int sum=0,i; for(i=0; i<n转载 2020-09-05 21:32:52 · 348 阅读 · 0 评论 -
【转】git分支管理命令
1.何谓同步远程分支?有下面几种情况,1.本地有新分支,远程仓库没有。 2.远程仓库有新分支,本地没有。3.本地删除了分支,远程也想删除。4.远程删除了分支,本地也想删除。第一种情况很好解决,将本地分支推送到远程仓库即可。本文主要讲解后面几种情况的解决办法。2.第二种情况:远程仓库有新分支,本地没有。这在之前我先介绍几个命令。1.将某个远程主机的更新,全部取回本地:git fetch2.查看远程分支:git branch -a3.查看本地分..转载 2020-09-05 21:29:21 · 159 阅读 · 0 评论 -
C/C++性能优化工具gprof
gprof工具简介gprof为gnu profiler,用于分析程序性能信息文件,从中得到程序中的函数调用栈及被调函数耗时(也支持统计语句级别的耗时),指出程序中耗时的部分所在,辅助进行程序性能优化gprof用户手册gprof 用户手册网站Profiling has several steps:You must compile and link your program with profiling enabled. See Compiling.You must execute your pr原创 2020-06-27 17:56:30 · 822 阅读 · 0 评论 -
使用gprof进行多线程程序性能分析
HOWTO: using gprof with multithreaded applicationsWhat is gprof?gprof is the GNU Profiler, a tool used when tracking which functions are eating CPU in your program. Anyway, you should already be familiar with it if you got interested in this page.One pr原创 2020-06-27 17:52:46 · 815 阅读 · 0 评论 -
【转】编译构建工具-bazel
简介 bazel是Google开源的一套类似于Make的编译构建工具。 运作原理 运行构建或测试时,Bazel执行以下操作 加载BUILD与目标相关的文件。 分析输入及其依赖关系,应用指定的构建规则。并生产action图 对输入执行构建操作,直到生成最终构建输出。 action图表示各个构建输入和他们之间的关系,以及Bazel将执行的构建操作。 优点 构建快。支持增量编译, 对依赖关系进行了优化,从而支持并发执行。 可构建多种语言。..转载 2020-06-06 22:04:38 · 2914 阅读 · 0 评论 -
Linux工具快速教程
Linux工具快速教程原创 2020-04-12 21:49:17 · 159 阅读 · 0 评论 -
vscode 快捷键
ctrl k + ctrl s 打开快捷键一览表。在这里面、你可以查看、搜索、修改快捷键。官方提供的快捷键文档:https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf...原创 2020-04-12 09:32:00 · 326 阅读 · 0 评论 -
Clion快捷键
配置快捷键开始使用clion时,首先需要设置快捷键风格——根据个人习惯选择即可,这边用的是visual studio 风格,设置入口如下所示:“Clion” | “Preference”| “keyMap”设置完后,就可以定义自己习惯的快捷键了,常用操作下面说说几个好用的功能(下面是mac的风格^对应ctrl,⌥是option键【win下为Alt】,⇧是shift):全局搜索(Se...原创 2020-02-22 22:52:41 · 1011 阅读 · 0 评论 -
一些好用的运维命令
pidstat:可以用于查看进程的cpu,内存和io使用情况——见https://chhy2009.github.io/2018/12/23/server-operation-cmd/docker容器内存和cpu信息:见/sys/fs/cgroup/memory目录下的信息lsof:查看进程打开了哪些文件,lsof -p pid |wc -l可以看进程打开的文件总数strace:跟踪查...原创 2020-02-16 22:13:58 · 125 阅读 · 0 评论 -
rapidjson使用
文章目录简介使用rapidjson解析json串使用rapidjson构造json串简介Rapidjson is a fast JSON parser/generator for C++ with both SAX/DOM style API.其所有源代码都包含在源码包的include/rapidjson/include目录下,使用时只需要include相应的头文件即可。详细的介绍见rap...原创 2019-01-01 19:48:07 · 810 阅读 · 0 评论 -
jsoncpp使用
jsoncpp简介jsoncp是一个操作json类型的c++库,可用于json串的解析与构造。其优点是语法简单,但是效率不如rapidjson。源码下载链接:open-source-parsers/jsoncppDocumention: JsonCpp documentation安装与使用其中最简单的方法是执行项目根目录中的python脚本,构建头文件和源文件。在安装Python环...原创 2019-01-01 19:49:58 · 1146 阅读 · 0 评论 -
如何统计测试代码的覆盖率
程序员应该对自己写的代码做好自测试,而自测试的一个有效的手段就是写单元测试或者LLT。对此,可以借助于测试框架,c/c++的如Google Test,CPPUnit; Java的如JUnit等。在单元测试中,覆盖率是用于衡量测试好坏的指标,能在一定程度上说明测试的完善度。但覆盖率和代码正确率是两码事,覆盖率高并不保证代码写的没bug,这点就不详细展开了。但覆盖率低了,肯定是用例不全。下面进入本...原创 2018-03-07 21:52:09 · 3939 阅读 · 0 评论 -
GoogleTest测试框架
Googletest测试框架是Google提供的一个c/c++代码测试框架,使用也比较简单,源码可以从github上直接下载,用法也有简单的说明,可以很快上手。android源码中就预置了Googletest测试框架,搞android的同学可以利用这个框架来测试自己的native层代码。想了解其实现原理的同学可以参考下面的文章,还不错:玩转Google开源C++单元测试框架Go原创 2017-06-28 07:47:54 · 618 阅读 · 0 评论 -
syslog-ng详解——安装syslog-ng
日志管理模块作为软件系统的一个重要子模块,其记录着系统运行的有关信息。当系统故障时,日志是用于问题定位的必备信息。所以,一个设计良好的日志模块及其重要,在Linux系统上往往用syslog(rsyslogd及klogd程序)来管理系统的日志。本文介绍的syslog-ng是syslog的next generation,具有比syslog更强大的功能和性能,优势在以下几个方面:兼容syslog的功原创 2017-09-12 21:53:21 · 5558 阅读 · 1 评论 -
syslog-ng详解——日志备份
logrotate开源软件logrotate为日志备份开源软件,其开源license为GPL。在Linux系统下,一般都默认安装好,配合syslog使用,可以使用man logrotate查看帮助信息: NAME logrotate - rotates, compresses, and mails system logsSYNOPSIS logrotate [-dv]原创 2017-09-28 22:58:24 · 1186 阅读 · 0 评论 -
lsof命令
linux下有很多实用的命令(tool), lsof就是其中一个,其作用为查看系统打开的文件。其常用场景整理如下:1、看下某个(rsyslogd)进程打开了哪些文件1) 查看rsyslogd的进程号 [root@localhost ~]#ps -elf | grep rsyslogd 5 S root 1487 1 0 80 0 - 62原创 2017-09-10 22:02:21 · 387 阅读 · 0 评论 -
awk用法简介
转载链接:https://chhy2009.github.io/2017/07/08/awk/与sed工具类似,awk是一种优秀的行文本处理工具。其具有内置的变量和函数,可以进行正则表达式的匹配,流程控制,数学运算。事实上,可以说awk是一种编程语言。awk程序结构任何awk语句都由模式(pattern)及动作(action)组成。其中模式是一组用于测试输入行是否需要执行动转载 2017-07-27 22:32:24 · 342 阅读 · 0 评论 -
visual studio 及intellij IDEA 快捷操作
代码阅读工具中,几个重要的功能是:1、 转到函数定义2、回到上一个位置或会到之后的位置(逆操作)3、搜索函数被调用的地方及位置跳转下面介绍几个IDE工具的操作visual studio 快捷操作ctrl+’-‘:回到上一个位置,相当于vim的ctrl+’o’ctrl+shift+’-‘:回到之后的位置,ctrl+’原创 2017-08-13 11:57:26 · 2133 阅读 · 0 评论 -
vim编辑二进制文件
编辑二进制文件vim可以很方便地编辑二进制文件,个人认为它比emacs的二进制编辑方式更 好用。vim中二进制文件的编辑是先通过外部程序xxd来把文件dump成其二进制的 文本形式,然后就可以按通常的编辑方式对文件进行编辑,编辑完成后再用xxd 转化为原来的形式即可。可分如下几步进行:首先,以二进制方式打开文件,命令为vi -b filename然后,在转载 2017-06-28 07:38:24 · 298 阅读 · 0 评论 -
vim 使用
1.1 vim的几种模式插入:按i,a, o等进入,用于添加文本替换:按R进入,当前文本会被替换为键入的文本命令模式:按’:’进入,可执行vim命令或shell命令(!command)可视(visual)模式: 按V进入。可视模式下可方便选取所需的块,进行复制操作记录模式:q:,唤出历史命令窗口查找模式:./ .? 进行文本查找模式切换:按Esc退出相应的模式原创 2016-04-17 11:30:04 · 692 阅读 · 0 评论 -
VmWare下CentOS 6.3 磁盘空间满处理操作
转载链接: http://my.oschina.net/u/869438/blog/182406今年3月搭建了bind9,一直运行正常。不过从前几天开始,出现域名无法解析情况,今天登录控制台一看,发现named服务无法启动,使用service named restart命令重启服务,出现“No space left on device”,提示磁盘空间不足。使用命令查看,果然全满了:转载 2016-01-24 21:45:35 · 952 阅读 · 0 评论 -
内存泄露的检测工具——Valgrind
1.1 下载安装 Valgrind是在linux系统下开发应用程序时用于调试内存问题的工具。它尤其擅长发现内存管理的问题,它可以检查程序运行时的内存泄漏问题。 它的官方网址是 http://www.valgrind.org/,下载最新版本的Valgrind,目前是3.11.0。 Linux下下载:wget http://www.valg转载 2015-12-19 09:13:53 · 1384 阅读 · 0 评论 -
使用vundle管理vim plugins
Vundle is short for Vim bundle and is a Vim plugin manager.同其它vim插件一样,vundle 也是一个vim插件,其提供了管理其它vim plugin的功能,可以在https://github.com/VundleVim/Vundle.vim上下载vundle.vim,然后放在~/.vim/bundle/Vundle.vim,这样原创 2017-10-12 22:30:11 · 333 阅读 · 0 评论 -
Enterprise Architect之UML实践
Enterprise Architect软件是一款专业的UML绘图软件,常用的图有类图、用例图、顺序图及流程图,均可用其创建。其他用于UML软件还有Rational Rose, StartUml, ArgoUml,JUDE等等。下面开始正文:1.1类图类图中有几种关系需要搞清楚:继承:继承一个类实现:实现一个接口依赖:如果一个对象和另一个对象相关,即作为另一个类的属性,原创 2015-11-29 08:55:17 · 1440 阅读 · 1 评论 -
clion for Mac下载与激活
下载地址:https://www.jetbrains.com/clion/download/#section=mac激活说明:https://blog.csdn.net/l297969586/article/details/78183671点开https://jetlicense.nss.im/,输入网页上的Active Code,亲测可用...原创 2018-09-16 17:56:16 · 2655 阅读 · 0 评论 -
分享个crawl小工具
crawl - a small and efficient HTTP crawlerThe crawl utility starts a depth-first traversal of the web at the specified URLs. It stores all JPEG images that match the configured constraints. Crawl转载 2018-03-25 18:02:45 · 529 阅读 · 0 评论 -
memcached学习资料
分享一些分布式缓存memcached的资料,链接http://www.open-open.com/doc/list/184?o=p&pn=0 文档下载不了的话,可以在百度上搜索下载(不需要积分),下面两个ppt很nice:Memcached 内存分析、调优、集群.pptxMemcached原理和使用详解.ppt...原创 2018-03-25 17:57:55 · 245 阅读 · 0 评论 -
谈谈交叉编译
1、在宿主机(通常是Linux服务器)安装编译工具链arm-linux-xxx2、下载待编译的软件代码(编译步骤通常为./configure; make ; make install)那么,如何编译出可在目标机上执行的程序呢?其中的文章就在./configure这步里面:1、使用./configure -h查看configure选项,通常有--host= --target=选项,用于指定使用的交...原创 2018-02-09 22:01:10 · 281 阅读 · 0 评论 -
repo常用命令整理
repo作为管理多个git仓库的一种工具,广泛应用于多项目多仓库的代码管理。repo init -u url [-b branch]#安装repo仓库及Mainfest仓库,可以增加-b参数来指定mainfest中的分支repo sync #更新项目中所有仓库文件repo upload #上传代码到远程仓库,相当于对所有仓库执行git push repo forall -a "原创 2018-01-03 21:19:02 · 927 阅读 · 0 评论 -
Nginx开发从入门到精通
ngnix是一个采用c代码编写的高性能web服务器,可作为使用c/c++的程序猿很好的学习例子,其入门文章Nginx开发从入门到精通先收藏下。原创 2017-11-19 16:17:40 · 325 阅读 · 0 评论 -
svn 常用命令
1、 下载checkout svn co url //下载到当前目录svn co url directory //下载到指定目录 2、 更新svn up [-r version] //-r version 为更新到指定的版本,没加的话就更新到最新版本svn up filename //更新某个文件3、 查看版本信息svn i原创 2015-11-22 21:58:27 · 574 阅读 · 0 评论 -
git 工具常用命令汇总
git是一个分布式版本控制工具,比svn要强大很多,适用于中大型的团队开发。svn比较适合中小型的团队开发。多个git版本一般用repo工具进行控制。常用命令:1、 仓库管理 git init 用来在目录中创建新的git 仓库,一般默认会创建master分支 git remote 罗列、添加和删除远程仓库别名,可加-v 选项,显示详细地址。如添加别名: g...原创 2015-08-02 11:38:49 · 634 阅读 · 0 评论