代码调试技术相关
文章平均质量分 81
李生龙
这个作者很懒,什么都没留下…
展开
-
nginx lua 性能分析
ngx lua 性能分析主要依赖动态追踪技术实时抓取获得函数调用栈的耗时占比情况主要介绍相关工具安装使用关于动态追踪 这有篇看不大懂的bloghttps://openresty.org/posts/dynamic-tracing/工具安装https://github.com/openresty/openresty-systemtap-toolkit.gitngxlua性能分析https://github.com/openresty/stapxx#lj-lua-stackssyst...原创 2020-11-04 11:24:43 · 506 阅读 · 0 评论 -
关于 Lua 内存泄漏的检测
引用:https://www.cnblogs.com/yaukey/p/unity_lua_memory_leak_trace.html 前一阵开始和同事一起优化内存,首先是优化 Lua 内存,因为发现每次战斗完后 Lua 内存非常大,从 3M 左右在经过了10次左右的战斗后,会暴增到近 100M,很明显是有内存泄漏。 然后我正式启动该工作,基本思路就是递归遍历内...转载 2020-02-19 23:27:56 · 1672 阅读 · 0 评论 -
doxygen使用-快速阅读代码
https://blog.csdn.net/joyjj0218/article/details/48084543https://www.linuxidc.com/Linux/2015-04/116607.htmhttps://www.ibm.com/developerworks/cn/aix/library/au-learningdoxygen/#list12需要修改的配置项如下...原创 2019-10-17 16:12:57 · 280 阅读 · 0 评论 -
Linux下利用backtrace追踪函数调用堆栈以及定位段错误
一般察看函数运行时堆栈的方法是使用GDB(bt命令)之类的外部调试器,但是,有些时候为了分析程序的BUG,(主要针对长时间运行程序的分析),在程序出错时打印出函数的调用堆栈是非常有用的。在glibc头文件"execinfo.h"中声明了三个函数用于获取当前线程的函数调用堆栈。int backtrace(void **buffer,int size) 该函数用于获取当前线程的调用堆栈,转载 2015-08-21 14:44:51 · 555 阅读 · 0 评论 -
Linux程序异常退出打印调用堆栈
/* * 程序异常终止时打印异常程序调用堆栈 * gcc -g -rdynamic BackTraceTest.c -o BackTraceTest * * 运行程序出现错误: * System error, Stack trace: * 0 ./BackTraceTest(SystemErrorHandler+0x77) [0x40095b] * 1 /lib64/libc.so.转载 2015-08-21 14:49:52 · 4573 阅读 · 0 评论 -
占用cpu高的调试方法
linux进程高cpu问题分析 1.用top命令查看哪个进程占用CPU高gateway网关进程14094占用CPU高达891%,这个数值是进程内各个线程占用CPU的累加值。 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 14094 root 15 0 315m转载 2015-08-21 10:23:24 · 1997 阅读 · 0 评论 -
性能调优命令
fuser -vm 查看设备被哪些进程使用iostat 查看设备读写磁盘vmstat 2 查看系统的性能相关如io cpu资源等iftop iptableslsof -i -pnetstat -napdf -h -idu -smstrace -pdd tcpdumptop转载 2015-09-09 11:43:02 · 410 阅读 · 0 评论 -
linux系统性能调优第一步——性能分析(vmstat)
性能调优的第一步是性能分析,下面从性能分析着手进行一些介绍,尤其对linux性能分析工具vmstat的用法和实践进行详细介绍。——————————————————————————————————————————1.性能分析的目的1)找出系统性能瓶颈(包括硬件瓶颈和软件瓶颈);2)提供性能优化的方案(升级硬件?改进系统系统结构?);3)达到合理的硬件和软件配置;4)使系统资源转载 2015-08-18 10:02:47 · 3752 阅读 · 0 评论 -
Vmstat主要关注哪些数据(性能论述)
除特殊情况外,一般关注飘红部分 http://www.cnblogs.com/argb/p/3448751.html任务的信息(procs) r(running) 在internal时间段里,运行队列中的进程数,即表示正在运行或者正在等待CPU时间的进程数,如果这个参数值超过服务器上cpu的数量,就可能存在 cpu瓶颈,有一些任务要等待执行。当业务繁忙的时候,转载 2015-09-11 17:32:45 · 478 阅读 · 0 评论 -
Linux性能分析和工具)
首先来看一张图: http://www.360doc.com/content/14/0325/15/15064667_363607814.shtml http://www.brendangregg.com/Slides/SCALE2012_new_tools_concepts_cloud.pdf ...转载 2015-09-10 14:41:47 · 1733 阅读 · 0 评论 -
kernel: httpd[6430]: segfault at* rsp * error 6
kernel: httpd[6430]: segfault at* rsp * error 6分类: 编程语言/ C#/ 文章原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://hzcsky.blog.51cto.com/1560073/642681Aug 18 13:52:37转载 2016-03-22 18:16:29 · 1928 阅读 · 0 评论 -
Git使用
Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能。Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。git clonegit remotegit fetchgit pullgit push本文针对初级用户,从最简单的讲起,但是需要读者对Git的基转载 2016-04-14 16:50:50 · 335 阅读 · 0 评论 -
系统级性能分析工具 — Perf
http://www.brendangregg.com/linuxperf.html 国外专栏特好 http://blog.csdn.net/zhangskd/article/details/37902159/从2.6.31内核开始,Linux内核自带了一个性能分析工具perf,能够进行函数级与指令级的热点查找。 perf Performance analysis to...转载 2017-06-12 17:46:24 · 477 阅读 · 0 评论 -
vim 编辑器的配置
https://blog.csdn.net/luzhenrong45/article/details/52464307原创 2018-01-14 10:40:03 · 304 阅读 · 0 评论 -
dmesg coredump排查
https://www.cnblogs.com/zengkefu/p/5539294.html [root@localhost log]# cat -n /root/xx.c 1 2 3 #include <stdio.h> 4 5 void func(char *p) 6 { 7 *p = 'p'; ...转载 2018-07-04 15:04:20 · 963 阅读 · 0 评论 -
gcov、lcov与genhtml 使用心得
gcc是linux平台下的C、C++ 编译器gcov是配合gcc产生覆盖信息报告的工具;lcov是将gcov产生的报告信息,以更直观的方式显示出来工具基本的使用方法分为4个阶段:(一)、gcc编译:产生插装后的目标文件test、gcov结点文件 test.gcno #gcc -fprofile-arcs -ftest-coverage -o test test.c ...转载 2018-08-17 14:59:32 · 1440 阅读 · 0 评论 -
Linux环境下段错误的产生原因及调试方法小结
Linux环境下段错误的产生原因及调试方法小结最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmentation Fault)。借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决。1. 段错误是什么一句话来说,转载 2015-05-28 10:43:07 · 481 阅读 · 0 评论 -
gdb使用多进程多线程3
Gdb调试多进程程序程序经常使用fork/exec创建多进程程序。多进程程序有自己独立的地址空间,这是多进程调试首要注意的地方。Gdb功能强大,对调试多线程提供很多支持。方法1:调试多进程最土的办法:attach pidAttach是调试进程的常用办法,只要有可执行程序以及相应PID,即可工作。当然,为方便调试,可以在进程启动后,设定sleep一段时间,如30s,这样即可有充足转载 2015-03-27 17:10:47 · 534 阅读 · 0 评论 -
linux 程序调试工具
漏洞相关书籍python灰帽子 捉虫日记 模糊测试强制性技术https://bitbucket.org/haypo/python-ptracepython-ptrace首页可以调试进程、线程、网络等。很强大调试工具1python-ptrace2 strace3 ptrace4 gdb5 objdunp反汇编下边windows 平台调试工具1IDAPyth原创 2012-11-22 16:40:22 · 844 阅读 · 0 评论 -
x86寄存器说明
2011-04-27 21:18:30| 分类: Assemble|字号ebp和esp是32位的SP,BP esp是堆栈指针 ebp是基址指针 ESP与SP的关系就象AX与AL,AH的关系. 32位CPU所含有的寄存器有: 4个数据寄存器(EAX、EBX、ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(转载 2012-12-07 15:21:37 · 550 阅读 · 0 评论 -
Linux下使用objdump+vim+xxd进行反汇编并修改指令
原文地址http://blog.163.com/lixiangqiu_9202/blog/static/535750372012727102618226/|字号 订阅前段时间花了一个星期时间马马虎虎算是对汇编入了门吧(好吧,其它我还是什么都不懂),最近又开始对汇编有点兴趣了,于是想试下反汇编的感觉并尝试自己修改下指令据说对一个程序反汇编后再修改的方法转载 2012-12-07 15:37:42 · 2288 阅读 · 0 评论 -
kmemleak的使用
内核泄露检测(kmemleak)介绍:Kmemleak 提供了一种可选的内核泄漏检测,其方法类似于跟踪内存收集器。(http://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29#Tracing_garbage_collectors)当独立的对象没有被释放时,其报告记录在 /sys/kernel/debug/km原创 2012-12-12 18:30:29 · 17874 阅读 · 0 评论 -
linux 快速登录方法u盘系统制作—livecd制作iso
Windows 下直接运行 Linux的Live CD版的方法转自http://publishblog.blogchina.com/blog/tb.b?diaryID=5122507Windows 下直接运行 Linux的Live CD版的方法 一个偶然的机会,我发现.Live CD 版的Linux可以借助 qume在Windows下直接运行;方法是下载linux-tr1转载 2012-12-19 13:47:48 · 4212 阅读 · 1 评论 -
跟我一起写 Makefile
最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比转载 2013-03-01 14:08:06 · 480 阅读 · 0 评论 -
kgdb的调试环境的建立(亲自操作)
参考博文:http://blog.chinaunix.net/space.php?uid=20937170&do=blog&id=3035576http://hi.baidu.com/lijunzzu/blog/item/da92bb037b9c826c3912bb4b.htmlhttp://blog.csdn.net/jie12310/article/details/4564853原创 2012-03-31 10:00:15 · 693 阅读 · 0 评论 -
automake 生成makefile方法
一、Makefile介绍Makefile是用于自动编译和链接的,一个工程有很多文件组成,每一个文件的改变都会导致工程的重新链接,但是不是所有的文件都需要重新编译,Makefile中纪录有文件的信息,在make时会决定在链接的时候需要重新编译哪些文件。Makefile的宗旨就是:让编译器知道要编译一个文件需要依赖其他的哪些文件。当那些依赖文件有了改变,编译器会自动的发现最终的生成文件已经转载 2012-01-09 16:36:25 · 602 阅读 · 0 评论 -
automake使用
automake使用: 1)运行autoscan命令,产生configure.scan文件; 2)将configure.scan 文件重命名为configure.in,并修改configure.in文件; 3)运行aclocal命令,产生aclocal.m4文件; 4)运行autoconf命令,产生configure文件; 5)新建Makefi转载 2014-04-06 08:38:40 · 1020 阅读 · 0 评论 -
Centos下安装Log4cxx
Log4cxx是开放源代码项目Apache Logging Service的子项目之一,用于为C++程序提供日志功能,以便开发者对目标程序进行调试和审计。要使用log4cxx,首先要从官网下载,官网是http://logging.apache.org/log4cxx/index.html,目前的最新版本是0.10.0,下载地址:http://www.apache.org/dyn/closer.cg转载 2014-08-19 19:52:12 · 2054 阅读 · 0 评论 -
Centos6.4下安装Boost1.51
1、下载boost_1_51_0.tar.gz tar -zxvf boost_1_51_0.tar.gz 2、然后进入解压缩后的文件夹编译boost的编译器jamcd boost_1_51_0\tools\jam./build_dist.sh 3、编译完后在这个目录下有编译出的bjam文件boost_1_51_0\tools\jam\stag转载 2014-08-19 19:52:52 · 825 阅读 · 0 评论 -
log4cxx的使用
一、Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。1、LoggersLoggers组件在此系统中被分为六个级别:TRACE 。这六个级别是有顺序原创 2014-08-20 15:11:47 · 592 阅读 · 0 评论 -
log4cxx配置案例
先看完整配置文件log4cxx.properties[html] view plaincopylog4j.additivity.gather = false log4j.rootLogger= debug, R, stdout //设置子logger log4j.logger.Lib_a =debug, ap1,转载 2014-08-20 17:02:38 · 827 阅读 · 0 评论 -
gdb使用多进程多线程2
1. 默认设置下,在调试多进程程序时GDB只会调试主进程。但是GDB(>V7.0)支持多进程的分别以及同时调试,换句话说,GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值:parent)和detach-on-fork(默认值:on)即可。 follow-fork-mode detach-on-fork 说明parent原创 2015-03-27 17:10:13 · 537 阅读 · 0 评论 -
MPlayer 源码 学习 (转)
Mplayer中关于Framebuffer设备相关的流程 原文地址: http://browser.bokee.com/2171300.html 注:本文只关注FBDEV相关的内容,其他的或不提,或略过。[由于时间比较紧,许多地方肯定还有不足的地方,欢迎指教]首先从Mplayer.c中的main函数开始,注意到//================== Init V转载 2012-12-04 11:06:39 · 780 阅读 · 0 评论