linux下debug工具

作者: 金沙澳门官网网址  发布:2019-08-22

log

输出log永世是最轻巧易行快捷的调解格局,能够高速牢固bug,通过安装日志品级决定日志的出口详略程度,结合一些文件深入分析工具awk/sed/grep能够便捷在大方日记中找到错误新闻。

valgrind

带有众多工具:

Memcheck。那是valgrind应用最普及的工具,一个重量级的内部存款和储蓄器检查器,能够开采开荒中山大学部分内部存储器不当使用状态,比如:使用未早先化的内部存款和储蓄器,使用已经出狱了的内部存款和储蓄器,内存访谈越界等。那也是本文将重要介绍的局地。

Callgrind。它最首要用来检查程序中等校园函授数调用进度中冒出的主题素材。

Cachegrind。它最主要用来检查程序中缓存使用出现的主题素材。

Helgrind。它根本用来检查多线程程序中出现的竞争难题。

Massif。它根本用来检查程序中仓库使用中冒出的标题。

Extension。能够运用core提供的职能,自身编排特定的内部存款和储蓄器调节和测量试验工具。

暗中认可使用的就是memcheck工具,在c 中指针的利用,一不留心就能够发生极度,就足以选用memcheck举办自己商量。个人一般用--track-origins=yes来恒定未起先化变量的地点。

在linux下开荒难免会境遇bug,不过出于尚未图形IDE,导致debug也变得劳碌,其实假若明白一些常用的debug工具,一些荒谬就能够便捷化解,本文就介绍一些常用的工具用以调解:

core dump文件

在进度收到有些时限信号而偃旗息鼓运营时,将此时进度地址空间的故事情节以及关于进度境况的任何消息写到core文件中,例如大家通常的专擅访谈内部存款和储蓄器发生segment fault错误,利用gdb能够查看到到底是何地发生了特别。有时候能够人工的向经过发送实信号kill -11 <pid>,查看此时系统运营的场馆,比方八线程下程序陡然停住了,此时就恐怕发生了死锁,能够人工的发出时域信号,再来深入分析core dump。

strace

是一个用来追踪系统调用的简约工具。它最简便易行的用处就是追踪三个主次整个生命周期里具备的系统调用,并把调用参数和重返值以文件的不二秘籍出口。Strace还足以跟踪发给进度的功率信号。援助attach正在运维的长河  strace -p <pid>, 当多线程情况下,须求追踪某些线程的系统调用,能够先ps -efL|grep <Process Name> 查寻找该进度下的线程,然后调用starace –p <pid>进行解析。

金沙澳门官网网址 ,gdb

特出的调治将养工具,作用很强劲,注意此时编写翻译的时候应该运用-g选项,并用-Og实行优化。多线程下可以attach到进度来调解。

pstack

用来追踪进度栈,举个例子大家开采叁个劳动一贯处于work状态(如假死状态,好似死循环),使用这一个命令就会自在定位难题所在;能够在一段时间内,多实践五遍pstack,若开掘代码栈总是停在同叁个岗位,那些地点就必要珍视关切,很可能正是出难点的地点;

tcpdump

抓包用的,在开拓互连网使用的时候很给力,结合awk/sed/grep能够急速寻觅互连网数据包。

stackoverflow

那几个网址是个程序设计领域的问答网址,基本蒙受的标题都能在那其间找到答案! 技艺氛围很强,从中能学到比相当多事物。

本文由金沙澳门官网发布于金沙澳门官网网址,转载请注明出处:linux下debug工具

关键词: 金沙澳门官网

上一篇:金沙澳门官网网址:目录索引
下一篇:没有了