进程调试

自己写的代码,直接gdb r/bt就可以了。

正在运行的进程,先ps ax找到进程id。然后gdb进入之后attach 进程id。stop/continue暂停和继续进程。

core了,有core文件,就直接gdb core文件。

线程调试

https://stackoverflow.com/questions/7698209/tracing-pthreads-in-linux

strace works for threads as well. Use strace -f to strace all threads.
To strace only a particular thread, you first have to find its tid (thread id). Threads have thread id's that's really a pid (process id)
Once you know the pid of the thread, use strace -p the_pid to strace that thread.

用strace也是可以跟踪线程的,先找到线程id。

 ls proc/进程id/task/

然后就可以用

 strace -p 线程id

也可以用gdb。attch之后,info threads;thread thread_no: 进入线程xx,通常紧接而来的是 bt/f 命令;

http://blog.51cto.com/huangfu3342/1609574

内存泄漏

可以用valgrind

今天还学到一招,可以用pmap -p pid查看内存镜像。然后把内存dump出来。dump内存操作如下:

  1. gdb -p pid,先用gdb挂到运行的进程3。
  2. 再执行gdb的dump命令,dump binary memory 导出文件名 导出内存起始地址 导出内存结束地址。

再根据dump出的内存内容反推是哪里出了问题。

性能分析

用perf加火焰图。

https://www.cnblogs.com/linyx/p/10031195.html

最新文章

  1. 使用pm2管理nodejs应用
  2. Flask 框架入门
  3. SAP接口编程 之 JCo3.0系列(04) : 会话管理
  4. Word embedding blog
  5. 用Express搭建 blog (一)
  6. [PHP] 安装和配置
  7. [oracle 使用(1)] win7/10 下Oracle10g的安装与卸载
  8. Android为TV端助力 post带数据请求方式,传递的数据格式包括json和map
  9. MySQL 大数据量分页优化
  10. Sudoku POJ - 3076
  11. Windows和Linux创建软链接和硬链接
  12. 集群瓶颈为什么是磁盘io
  13. Leetcode——Target Sum
  14. VS2010调试和头文件路径设置
  15. centos 7下ldap安装
  16. 修改分区后的 Grub rescue
  17. flask之基础概念
  18. Python_Tips[6] -> is 和 == 的区别
  19. AtCoder Grand Contest 016 F - Games on DAG
  20. Scala入门到精通

热门文章

  1. CF745 C 并查集
  2. JQuery对RadioButton和CheckButton的操作
  3. 【洛谷P2676】超级书架
  4. Vue笔记之模板语法
  5. JS中函数void()
  6. vsftpd 安装配置详细教程
  7. MySQL登录问题1045 (28000)处理步骤【原创】
  8. spring boot注解学习记
  9. ../include/squid_md5.h:27:2: error: #error Cannot find OpenSSL MD5 headers【squid安装中】
  10. PHP 利用nginx的X-sendfile控制下载,提高下载效率