zoukankan      html  css  js  c++  java
  • 调试 之gdb thread命令 与 ltrace/strace

    我们可以通过  1)  gdb prog_name -> r               用在逐步调试自己的程序时

                        2)  gdb -> attach process_id       正在运行中的后台程序突然卡在了某个地方,先ps再gdb/attach

                        3)  gdb prog_name core              程序core掉了

    三种方式对一个程序进行调试;

    1. thread——gdb 多线程调试命令:

         info threads:           显示当前进程中的线程;

         thread thread_no:  进入线程xx,通常紧接而来的是 bt/f 命令;

    2. strace/ltrace:

         前者关注系统调用和程序所接收的信号;后者关注库函数调用;

         strace的应用在 我们没有程序的源码,或者不方便从头开始运行程序时;可以方便查看一个应用程序进行了哪些系统调用。

         而在希望知道程序都调用了动态库中的哪些函数时,我们使用 ltrace。ltrace有个-S选项,类似于strace功能。

    3.检查内存泄漏的工具:

       valgrind (in linux, free) 
       visual leak detector (windows , free)
       boundschecker(windows, free)

       profile工具:
       oprofile
       vtune

  • 相关阅读:
    192.168.*.* 的ip无法连接Mysql数据库的解决办法
    sql server从数据库表中读取不同的日期格式
    mysql数据库命令使用
    远程软件连接虚拟机慢解决方法
    VMware设置nat上网
    虚拟机用桥接上网
    delete和truncate区别
    LNMP
    zabbix
    cacti监控
  • 原文地址:https://www.cnblogs.com/lidabo/p/5629973.html
Copyright © 2011-2022 走看看