调试工具
文章平均质量分 84
Aiky哇
专注于数据库、go、性能优化,对待当下的态度,决定你未来的高度
展开
-
Go 调试工具:gdb vs dlv
综合比较两个Golang程序调试器gdb和dlv,我认为dlv的功能更为完善,更能满足实际调试时的功能需求。两者的优缺点比较大致如下调试器优势不足dlv对goroutine环境调试支持比较完善暂时没找到gdb符合现有的调试习惯,类似C/C++调试指令都有对goroutine场景支持不足,不能很好的应对goroutine的调试(1)dlv对goroutine的支持更好,我使用gdb的没有找到goroutine的调试方法,可能姿势不对(2)gdb对于局部引用变量无法调试,dlv不会。转载 2023-03-07 20:29:08 · 510 阅读 · 0 评论 -
Go mockito 使用说明 (github/mockey)
mockey是一个简单易用的golang mock库,可以快速方便的mock函数和变量。目前广泛应用于字节跳动服务的单元测试编写。底层是monkey patch,通过在运行时重写函数指令实现。mock后还是进入了原来的函数?私有类型的导出方法(不同包下)goroutine 条件过滤。获取 mock 函数执行次数。报错“功能太短无法打补丁”?增量改变 mock 行为。如何禁用内联和编译优化?mock 后执行原函数。原创 2023-03-01 17:41:34 · 1173 阅读 · 0 评论 -
使用wireshark来分析mysql tcpdump下来的包数据
上一篇介绍了tcpdump的使用方式:tcpdump的入门与使用格式,很好懂_Aiky哇的博客-CSDN博客tcpdump简介dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。实际操作来试试看。在linux上使用:tcpdump --help可以看到版本及使用介绍:原创 2022-04-13 15:18:23 · 732 阅读 · 0 评论 -
tcpdump的入门与使用格式,很好懂
tcpdump简介dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。实际操作来试试看。在linux上使用:tcpdump --help可以看到版本及使用介绍:在没有任何设置和过滤的情况下试一下,直接使用:tcpdump然后发现..原创 2022-04-12 12:00:25 · 758 阅读 · 0 评论 -
git使用之fatal: Authentication failed for 【】异常
在项目开发中经常会使用git版本库,由于在开发环境上很可能并没有git仓库,此时就需要初始化一个git仓库,使用命令git init(注意:这里可能会造成环境的严重影响,强烈建议将你要部署仓库的代码环境进行备份)。在使用git clone或者是git status过程中,总是报“fatal: Not a git repository”的错误,然而使用git --version并没有报错,而是正常的显示git版本,这说明git本身是没有问题的,出现这个错误的原因是是由于在目录中没有git仓库导致的,此转载 2021-12-29 15:25:24 · 6302 阅读 · 0 评论 -
go的gc机制,内存泄漏和内存逃逸,怎样才能最大减少gc的负担?
gc也就是垃圾回收。最近写的项目,pprof查看性能,发现在gc的消耗非常大,因此想着深入调研一下go的gc模式,了解在写程序时保持哪些好的代码习惯,才能最大的减少程序的gc调用。gc是什么了解的同学可以直接跳过。GC Garbage Collection。直译过来就是垃圾回收。想要进行程序调优,是肯定避不开这个环节的,gc管理不好,很容易造成程序的内存无限增长,然后被系统杀掉,上线的项目发生内存泄漏,肯定是p0级别的问题了。一般写的程序中会用到两种内存,堆内存和栈内存。堆内存就是堆状数据结原创 2021-09-18 18:06:58 · 3695 阅读 · 0 评论 -
Version of Go is too old for this version of Delve
干活时随便升级了一下vscode,然后go就没法调试了,报错为:Version of Go is too old for this version of Delve (minimum supported version 1.15, suppress this error with --check-go-version=false)是go的delve版本太高了导致没有办法用。在GOPATH下的bin目录,使用./dlv version命令查看dlv的版本。[root@vm10-0-0-5.原创 2021-08-12 15:57:56 · 4813 阅读 · 0 评论 -
使用nmon_analyser分析nomn产生的数据
直接使用nmon看数据,只能监控当前状态的,如果想查看一段时间内的状态走向,那效果就不太理想。nmon_analyser是一款分析nmon产生的数据用的分析器。下载地址:http://nmon.sourceforge.net/pmwiki.php?n=Site.Nmon-Analyser使用这个工具,可以将nmon产生的文件解析成如下的可视化折线图。除了该折线图,对nmon监控的其他项也会有相应的表格nmon生成记录数据文件nmon -s1 -c60 -f -m .原创 2021-05-17 19:59:54 · 460 阅读 · 0 评论 -
TiDE+vscode部署调试tidb
" TiDE是Visual Studio Code扩展,使TiDB的开发变得轻而易举。还在编码,编译,将二进制文件复制到服务器,重新启动每个进程以及从各处的日志中获取信息的循环中吗?尝试TiDE,使TiDB开发体验再次精彩! "由于工作需要,需要熟悉tidb代码流程,想要通过源码调试来学习tidb如何处理一条sql。但是tidb的模块还挺多的,编译部署安装觉得有些麻烦,因此发现了一个非常好用的插件TiDE。我这里只是想看源码,不想做性能测试,因此是使用的默认配置,在...原创 2021-04-13 20:59:37 · 882 阅读 · 0 评论 -
Remote development插件本地vscode连接云主机
运行环境本地环境:windows10远程环境:金山云下centos7云主机前置条件vscode,插件Remote development windows10,开始->设置->应用->应用和功能->可选功能,有openSSH客户端。 云主机可登录,且支持ssh运行命令第一步在本地windows环境下:打开cmd运行:ssh-keygen -t rsa一路回车。在默认路径(C:\Users\Administrator/.ssh/id_rsa)下,原创 2021-02-24 18:03:34 · 759 阅读 · 0 评论 -
看go源码函数调用关系图的开源工具go-callvis使用方式和举例
go-callvis的github地址https://github.com/ofabry/go-callvisgo-callvis的简介go-callvis是为了让go开发人员能用更简单的弄明白go工程中的函数和包之间的调用关系,将工程中的调用关系用图表等可视化的方式展示出来。在大型项目中调用关系非常复杂,用go-callvis工具理解起来会很有帮助。ps:对于代码逻辑很优美的大型工程来说,工具会很有用,看起来结构很清晰;但是对于写的一般的大型工程来说,看起来同样很麻烦,因为生成的图表的调用原创 2021-02-03 12:02:31 · 2727 阅读 · 0 评论 -
gdb调试基本命令(非常详细)
gdb基本命令本文介绍使用gdb调试程序的常用命令。简介GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。同时GDB也具有例如ddd这样的图形化的调试端。一般来说,GDB主要完成下面四个方面的功能:启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) 当程序被停住时,可以检查此时...转载 2021-02-05 15:25:01 · 8572 阅读 · 0 评论